хочу сюди!
 

Анна

50 років, телець, познайомиться з хлопцем у віці 45-55 років

Замітки з міткою «фибоначчи»

Снукер, арифметика, геометрия, числа Фибоначчи

Free Image Hosting at FunkyIMG.com

Прошу прощения у всех подписчиков, друзей и сочувствующих. В связи с началом ЧМ по снукеру, я практически 98% свободного времени провожу у монитора. Сегодня часов 8 уже провел, а еще первый день не закончился. Бингхэм с Картером продолжают сражаться. Вторая сессия.

А еще сегодня вычислил 1000-е число Фибоначчи, пока был перерыв в снукере.
Это 209 знаков и все целыми, вот последних три   -
 
10261062362033262336604926729245222132668558120602124277764622905699407 98254671148827285946888745795908773 31192425640778507436576611808273267 98539177758919828135114407499369796465649524266755391104990099120377

16602747662452097049541800472897701834948051198384828062358553091918573 71770117020106551018559589860510409 47369188792784622330159810295229978 36311232618760539199036765399799926731433239718860373345088375054249

26863810024485359386146727202142923967616609318986952340123175997617981 70024788168933836965448335656419182 78561614433563129766736422103503246 34850410377680367334151172899169723197082763985615764450078474174626

А код элементарный - все за меня сделал calc (фантастический калькулятор под Линукс)

#!/usr/bin/calc -q -f
    fib=1;
    num=1000;
    newfib=0;
    oldfib=0;

for (i=1; i < num; ++i) {
    print fib;
    newfib=oldfib+fib;
    oldfib=fib;
    fib=newfib;
}

Продолжаю смотреть снукер
Map

Числа Фибоначчи. Быть скромным мало, нужно чтоб это узнали все

Free Image Hosting at FunkyIMG.com

Все-таки я фантастически гениальный чувак. Оказалось, что OpenConsole() из среды разработки функционально только под Виндой. А в Линуксе - нет. Уже скомпиллированный бинарник - открывает консоль, а в процессе отладки - нет. Ужас какой-то. Так отрабатывать проги совершенно невозможно. Нужно же видеть глазами на экране в процессе написания, как, что почему и т.д.

Я вывернулся совершенно офигенным способом, который работает и в Винде и в Линуксе.

Создаю окно, а потом в нем ЭдиторГаджет.

И все, что нужно выводить на гребанную консоль - вывожу в текстовый редактор. А там и прокрутка есть и возможность переноса и прочие вкусняшки.

Короче - вуаля. И работает один и тот-же исходник на любой операционке.



Вот реальный пример вычисления чисел Фибоначчи аж до 91-го элемента. Дальше у компьютера (обычного) кончаются мозги (если высчитывать в целочисленном виде). Если считать в виде чисел с плавающей запятой, то практически нет предела аж до трехсотого знака. Кстати, если почитать всякую хуйню про алгоритмы вычисления чисел Фибоначчи, то авторов такого типа нужно откровенно слать на хуй. Именно тот случай когда рекурсия категорически противопоказана. Попробуйте на любом языке программирования вычислить 90-е число Фибоначчи пользуясь рекурсией. Просто попробуйте. Через год сообщите про результат, если получится.

Иногда нужно думать. Если бы комп мог оперировать бесконечно-целыми числами, то мой алгоритм за пять минут вычислил бы все существующие и несуществующие во вселенной числа Фибоначчи (шутка близкая к правде).
Map

Ксати, вот и они. Время вычисления - 4 (четыре) миллисекунды. Миллисекунды, Карл!
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903
2971215073
4807526976
7778742049
12586269025
20365011074
32951280099
53316291173
86267571272
139583862445
225851433717
365435296162
591286729879
956722026041
1548008755920
2504730781961
4052739537881
6557470319842
10610209857723
17167680177565
27777890035288
44945570212853
72723460248141
117669030460994
190392490709135
308061521170129
498454011879264
806515533049393
1304969544928657
2111485077978050
3416454622906707
5527939700884757
8944394323791464
14472334024676221
23416728348467685
37889062373143906
61305790721611591
99194853094755497
160500643816367088
259695496911122585
420196140727489673
679891637638612258
1100087778366101931
1779979416004714189
2880067194370816120
4660046610375530309
7540113804746346429
4 millisecond