уМникум
уМникум личный блог
27 июля 2011, 02:33

Простая задачка ....

Года 90-лохматого с задачки на Олимпиаде по программированию (тогда на 8-битных «калькуляторах»).
Всем фибонастам понравится ;)

1. есть ряд «аля фибо» 0-1-1-2-3-5-8 ....
2. продолжаем ряд сложением предыдущих 2х чисел для получения нового.
3. все получаемые числа дописываем в ряд 0112358 и тд.

Задача (собственно):
Какое число (символ, цифра) будет 2011м в этом ряду ;)

Это как бы и к роботостроительству (на предмет построения алгоритма вычисления).
55 Комментариев
  • alexv1975
    27 июля 2011, 02:58
    Ответ 6. 13й знак в числе 30960598847965100000000000000 и будет 2011 в ряду записи.
    Хотя вероятность числа 0 около 50% при таком формате записи в строку, т.к. каждое число начиная с 75го оканчивается на 0, и количество нулей в строке с увеличением ряда будет только расти.
  • alexv1975
    27 июля 2011, 03:01
    вспомнил молодость)
    участник всероссийской олимпиады школьников по программированию 1993г г.Троицк

    и че я до сих пор руками торгую)))?
  • Werner Heisenberg
    27 июля 2011, 08:03
    ща на PHP в две строки цикл кину… гляну что выйдет :)
    • Kolaider
      27 июля 2011, 08:19
      דמיטרי,
      Ну что там, рассчиталось? ))
  • Werner Heisenberg
    27 июля 2011, 08:57
    вот 50 строк dioxid.ru/fibo.php
  • Werner Heisenberg
    27 июля 2011, 08:59
    но жутко грузится :) и вообще я немного не понял задачу если честно :) что там надо сделать то?
    • alexv1975
      27 июля 2011, 09:07
      דמיטרי,
      склеить ряд по условиям в одну строку, а затем назвать символ #2011 в склеенном ряду
      • WILSON
        27 июля 2011, 09:13
        alexv1975, клеить не обязательно, достаточно знать два последних числа из ряда Фибоначи и номер в ряду у последней цифры второго из этих чисел. Смещаясь в цикле вправо добираемся до 2011 знака.
        • alexv1975
          27 июля 2011, 09:15
          Wilson,
          а я ряды фибоначчи не знаю)
          или знал, но забыл. решал как обычно с извращенной логикой)
          • WILSON
            27 июля 2011, 09:16
            alexv1975, а чё там знать, тебе же в условии задачи всё написали. В ряде Фибоначи каждое последующее число равно сумме двух предыдущих.
        • Werner Heisenberg
          27 июля 2011, 09:16
          Wilson, мммм… объясни — ну очень интересно!
          • WILSON
            27 июля 2011, 09:24
            דמיטרי, ок. 13-е число в ряде фибоначи это — 144. 14-е число в этом ряду — 233. В числе 233 последняя цифра 3 занимает в будущем склееном сплошном ряду 23-й номер.Следущее число в ряду Фибоначи равно 144+233=377, цифра 7 (последняя в этом числе) будет под номером 23+3=26. Теперь забываем про цифру 144 и идем дальше также с двумя последними цифрами (т.е. формируем цикл) и добираемся до 2011-й цифры.
      • Werner Heisenberg
        27 июля 2011, 09:13
        alexv1975, спасибо — я так и думал но уже больно сомневался :)
  • Werner Heisenberg
    27 июля 2011, 09:31
    011235813213455891442333776109871597258441816765109461771128657463687502512139319641831781151422983204013462692178309352457857028879227465149303522415781739088169632459861023341551655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920250473078196140527395378816557470319842106102098577231716768017756527777890035288449455702128537272346024814111766903046099419039249070913530806152117012949845401187926480651553304939313049695449286602111485077978050341645462290671055279397008847608944394323791460144723340246762002341672834846770037889062373143900613057907216116009919485309475550016050064381636700025969549691112300042019614072749000067989163763861200011000877783661000001779979416004710000288006719437082000046600466103755300007540113804746350000122001604151219000001974027421986820000031940434634990100000516807088548583000008362114348984840000013530185234470700000021892299583455500000035422484817926200000057314784401381700000092737269219307900000015005205362069000000002427893228399980000000392841376460687000000063563069930068500000001028472075761370000000016641027750620600000000269257485082343000000004356677625885490000000070492524767089100000000114059301025944000000000184551825793033000000000298611126818977000000000483162952612010000000000781774079430987000000000126493703204300000000000020467111114739900000000003311648143516980000000000535835925499097000000000086700073985079500000000001402836665349890000000000022698374052006900000000000367267407055058000000000005942511475751270000000000096151855463018400000000000155576970220531000000000000251728825683550000000000000407305795904081000000000000659034621587630000000000000106634041749171000000000000017253750390793400000000000002791715456571050000000000000451709049565039000000000000073088059522214500000000000001182589644787180000000000000019134702400093300000000000000309605988479!6!5100000000000000
  • Werner Heisenberg
    27 июля 2011, 09:31
    в общем конечно это 6 — но только благодаря компьютерным технологиям…
  • Werner Heisenberg
    27 июля 2011, 09:33
    само число вот оно: 30960598847965100000000000000 и в конце символ = 6 это 2011 символ
    Но как это решить просто по формуле я не понял
  • WILSON
    27 июля 2011, 09:37
    Ответ 2. Это 9-ая цифра в числе 3807901929474030000000000000000
    • alexv1975
      27 июля 2011, 09:41
      Wilson,
      ждем автора, пусть рассудит)
      • WILSON
        27 июля 2011, 09:44
        alexv1975, мне Эксель так посчитал, а как правильно я не знаю
      • WILSON
        27 июля 2011, 09:46
        alexv1975, как оказалось Эксель с определенного регистра начинает округлять цифры, щас буду с настройками Экселя разбираться
  • WILSON
    27 июля 2011, 10:05
    с Экселем не разобрался, не умеет он с большими числами работать, первый раз в жизни он меня подвел.
    • alexv1975
      27 июля 2011, 13:45
      Wilson,
      а я в экселе и считал. там формат ему на ячейку числовой задаешь и все путем.
      а вот перевести из числа в текст и длину символов взять, тут на 20ти знаках эксель обламал, пришлось некоторую длину чисел руками добавить для поиска 2011 номера.
  • del
    27 июля 2011, 13:14
    эксцель все умеет! это руки кривые.
    • WILSON
      27 июля 2011, 13:47
      Макс, сам попробуй вначале в Экселе сделать, а потом руки чужие обсуждать будешь.
    • WILSON
      27 июля 2011, 13:57
      Макс, назови мне для начала 75-е число в ряду Фибоначи, посчитанное Экселем.
      • alexv1975
        27 июля 2011, 14:00
        Wilson,
        ексель 1304969544928660 75ое число
        • WILSON
          27 июля 2011, 14:01
          alexv1975, а должно быть .......657
        • WILSON
          27 июля 2011, 14:03
          alexv1975, вот посмотри предыдущие два числа и сложи их вручную
          • alexv1975
            27 июля 2011, 14:07
            Wilson,
            о, точно косяк екселя))
            тогда мой ответ неправильный)))
            претензию надо биллу гейтсу писать)
        • WILSON
          27 июля 2011, 14:09
          alexv1975, предполагаю, что где то в настройках Экселя есть поле где можно повысить точность вычислений (а косяк стопудово из-за округлений которые делат Эксель), но я сам не нашел где это можно сделать в Экселе.
    • WILSON
      27 июля 2011, 13:51
      уМникум, ты не сможешь ничего перевести в экселе из чисел в текст, т.к. эксель не корректно считает такие числа.
        • WILSON
          27 июля 2011, 13:55
          уМникум, задайся же и сделай
            • WILSON
              27 июля 2011, 14:32
              уМникум, назови для начала 75-е число в ряду Фибоначи из твоего Экселевского столбца
                • WILSON
                  27 июля 2011, 14:36
                  уМникум, не правильно
        • WILSON
          27 июля 2011, 14:36
          уМникум, я знаю как выглядит Эксель, мог бы картинку и не выкладывать
            • WILSON
              27 июля 2011, 14:39
              уМникум, не растраивайся, они у тебя всё равно не правильные
                • WILSON
                  27 июля 2011, 14:43
                  уМникум, сложи ручками 73-е и 74-е число и сравни с тем что тебе написал Эксель про 75-е число. Считаем конечно же с 0, как и полагается.
                    • WILSON
                      27 июля 2011, 14:56
                      уМникум, ну вот видишь, а то «Зин...», а некоторые еще и про ручки что-то тут писали.
                    • WILSON
                      27 июля 2011, 15:00
                      уМникум, можно Эксель конечно обмануть, разбив большие числа на два числа (правая часть и левая), но вот эту хрень программировать что то не хочется, точнее именно сейчас на это времени точно нет, хотя механизм реализации примерно мне понятен.
    • WILSON
      27 июля 2011, 13:54
      уМникум, описание короткого алгоритма я привел выше в описании, там не надо строить массив из всех чисел Фибоначи.
  • LordNikon
    27 июля 2011, 13:53
    если нумерация с 1, то ответ 6, если с нуля то 9
  • Rafael Kadyrov
    28 июля 2011, 11:41
    Хорошая задача. Особенно для калькулятора

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн