![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.06.2008
Сообщений: 11
|
![]()
Народ помогите срочно решить задачу 3.03.2009 уже сдавать надо.
В общем есть треугольник Паскаля, в каждой строке a нечётных чисел. Строки нумеруются с 0. Определить кол-во нечётных чисел в строке № b. Я видел решение в несколько строк без процедур, но забыл. Там было while, в условии цикла and между числами (не логическими выражениями!!), этот цикл считал какое-то число, а ответ выводился "2 shl <это число>". Помогите плиз, а то срочно надо. Номер строки до 2 000 000 000, чтобы работало быстро просто летало. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
![]()
Вопрос на засыпку:
Вы знаете сколько вообще ВСЕГО чисел в строчке треугольника Паскаля под номером 2 000 000 000? ПС: если скажете, то обещаю написать на C/C++/C#/VB/Pascal/Delphi/... до 3-го марта.
"Hello, world!" - 17 errors 56 warnings
|
![]() |
![]() |
![]() |
#3 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
![]()
интересная задача (люблю такие).
Код:
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
![]()
Plague, ну а при номере строчки = 2 000 000 000 работает?
"Hello, world!" - 17 errors 56 warnings
|
![]() |
![]() |
![]() |
#5 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
![]()
не работает только уже начиная от 2147483647
это граница типа longint
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
![]()
А вот мне кажется, что колличество нечетных чисел можно вычислить с помощью простой формулы. Только вот надо подумать, какой...
"Hello, world!" - 17 errors 56 warnings
|
![]() |
![]() |
![]() |
#7 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
![]()
Ну никто вам не мешает. Думайте...
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.06.2008
Сообщений: 11
|
![]()
Спасибо огромное Plague - прога работает очень помогло.
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
![]()
(все мое ИМХО, хотите верьте, хотите нет)
Можно сделать немного более простую и быструю функцию, если учитывать тот факт что: В треугольнике Паскаля Рассмотрим множество строк от строчки под номером 2^n до строчки под номером 2^(n+1). (давайте считать, что n - "велико") Число этих строк = 2^n Так как n велико, то давайте разделим 2^n на четверки (этих четверок будет 2^(n-2)) Теперь я попробую объяснить индуктивно то, до чего додумался: давайте абстрагируемся от всяких строчек, а просто попробуем составить последовательности: Например - самое порстое: Пусть дана последовательность 1:{2,4,4,8} Следующую будем строить предыдущую, умноженную на 2: 2:{2,4,4,8}, {4,8,8,16} - Она уже состоит из 2-х четверок 3: Третья должна состоять из 4-х четверок, которые получаются из предыдущей последовательности следующим образом: к предыдущей последовательности дописывается сначало все кроме первой четверки, а последняя четверка на равна предпоследней, умноженной на 2(оч непонятно, но по другому никак) {2,4,4,8}, {4,8,8,16},{4,8,8,16},{8,16,16,32} 4:{2,4,4,8}, {4,8,8,16},{4,8,8,16},{8,16,16,32}, {4,8,8,16},{4,8,8,16},{8,16,16,32}, {16,32,32,64} ... Для i-й писать влом. А теперь, я утверждаю, что для номера строчки из треугольника Паскаля = 2^n, числа нечетных чисел в строках с номерами от 2^n до 2^(n+1) записываются как вышеизложенная мною строчка с номером n-1 Завтра могу написать прогу. Преимущество в том, что она сама "строит" треугольник и считает в нем в нечетные числа. Может я где то ошибся, если что, исправьте.
"Hello, world!" - 17 errors 56 warnings
Последний раз редактировалось Тупой; 02.03.2009 в 23:57. Причина: исправил ошибку |
![]() |
![]() |
![]() |
#10 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
![]()
проверил программу на числе9223372036854775807
верхняя граница Int64 решается за сотую долю секунды. Суть не в том чтобы построить треугольник он нам не нужен, просто есть закономерность по которой можно найти количество нечетных чисел в строке треугольника Паскаля.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Треугольник задан длинами своих сторон: a, b, c. Найти углы треугольника. задача на С++ | Wia | Помощь студентам | 6 | 13.12.2008 16:13 |
Найти площадь треугольник (задача в делфи) | YO$YA | Помощь студентам | 5 | 19.11.2008 21:29 |
Задача про треугольник | YO$YA | Помощь студентам | 10 | 15.11.2008 20:29 |
Треугольник Паскаля в Turbo Pascale 7.0 | Rusl92 | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 23.04.2008 13:56 |
ПОМОГИТЕ С ПРОГРАММОЙ ПРО ТРЕУГОЛЬНИК | LOTER | Помощь студентам | 26 | 30.01.2008 03:36 |