Блог пользователя yahooo

Автор yahooo, 15 лет назад, По-русски

yahooo хочет знать, можно ли (если можно, то как) находить произведение последовательного ряда чисел фиббоначи, т.е F1F2F3...Fn за время ассимптотически небольшее O(logN)? (N не больше инта)

я нашел много информации по числам фибоначчи, но так и не нашел, как это делать =(

UPD: конечно же, произведение должно быть найдено по модулю, который может быть любым, неменьше 2 и не превосходит инта

UPD2: ну грубо говоря, мне нужно находить не это, а то, с какого момента это произведение по модулю равно нулю... может так будет проще

  • Проголосовать: нравится
  • -64
  • Проголосовать: не нравится

»
15 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится
Оно может быть достаточно большим. Вам длинное произведение нужно?
  • »
    »
    15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится -8 Проголосовать: не нравится
    по модулю конечно, просто если я буду знать как это делать без модуля, модуль, думаю, прикрутить будет несложно
    • »
      »
      »
      15 лет назад, скрыть # ^ |
      ← Rev. 4  
      Проголосовать: нравится +3 Проголосовать: не нравится

      Фишка в том, что без модуля их там всего порядка пары тысяч первых значений в память влезет.

      Без модуля - тоже важно какой модуль. Точнее, важно, имеет ли он вид 4k + 1, или 4k + 3. По какому модулю?

      UPD: Ой-ой-ой. Какой я бред сказал. Во-первых, я, конечно, имел в виду, необходимость того, что 5 является квадратичным вычетом. Мне показалось, что тогда из того, что , можно вывести что-то хорошее. Похоже, что нет.

      На самом деле, можно подумать на тему того, что есть такое (a + b)(a2 + b2)...(an + bn) после раскрытия скобок, и как его быстро посчитать. Быстрее чем за линию ничего в голову пока не приходит Можно попытаться учитывать то, что ab = 1 в нашем случае.

      • »
        »
        »
        »
        15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        по любому (имеет любой вид, может быть простым, а может и не быть)
      • »
        »
        »
        »
        15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        если имеет то ответ 0?
        • »
          »
          »
          »
          »
          15 лет назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится
          Конечно нет. Я намудрил чуток :-)
          • »
            »
            »
            »
            »
            »
            15 лет назад, скрыть # ^ |
            ← Rev. 2  
            Проголосовать: нравится -8 Проголосовать: не нравится

            Наверно так Натуральное число N является числом Фибоначчи тогда и только тогда, когда 5N2 + 4 или 5N2 − 4 является квадратом.

            Следовательно если модуль имеет такой вид то ответ 0. Но если модуль не имеет такой вид?
            • »
              »
              »
              »
              »
              »
              »
              15 лет назад, скрыть # ^ |
               
              Проголосовать: нравится +21 Проголосовать: не нравится
              Стоп. При чём здесь этот факт? Вы просто пытаетесь сказать, что если модуль - число Фиббоначчи, то начиная с некоторого момента произведение - ноль.
              Это похвально :-)
»
15 лет назад, скрыть # |
 
Проголосовать: нравится -8 Проголосовать: не нравится
Здесь смотрели?
»
15 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится 0 Проголосовать: не нравится

Аа.. Ну так бы и сказали. Тогда вам копать в сторону периода Пизано.

Вот, например, хороший абзац:

Для простого числа p и целого числа k ⩾ 1 выполняется . Более того, для всех точных степеней простых чисел от 1 до миллиона выполнено равенство . Но до сих пор неизвестно, на всегда ли выполнено это равенство, и существуют ли такое p, что π(p2) = π(p).

До миллиона-то вам за глаза хватит.

Дальше воспользоаться мультипликативностью. А дальше научиться считать π(p). А это эквивалентно тому, что , т. е. φ2n = 1,  а это уже задача поиска порядка числа по простому модулю. Это уже баян.


»
15 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится -15 Проголосовать: не нравится

Cреди k+1 последовательных чисел Фибоначчи найдется число, делящееся на k, для любого простого k.

Вас устроит перебор k+1 первых чисел?

UPD: Извиняюсь, O(logN) здесь не видно пока, но думаю, копать надо в этом направлении.
»
15 лет назад, скрыть # |
← Rev. 4  
Проголосовать: нравится 0 Проголосовать: не нравится

в связи с этой темой:

читаю на википедии эту статью, одно из свойств:

Если p — нечётное простое число, то π(p) является делителем , p - (p/5), где (p/5) — символ Лежандра.

проверяю для p = 3:

(3/5)=-1, если я не ошибся

p - (p/5) = 3 - (-1) = 4

π(3) = 8, но как так, по свойству π(3)должно являться делителем 4х!

я где то натупил?

извините за оформление...

  • »
    »
    15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Хм, похоже там опечатка - для нескольких других p тоже получается, что п(p) делится на p - (p/5)
  • »
    »
    15 лет назад, скрыть # ^ |
    ← Rev. 2  
    Проголосовать: нравится +1 Проголосовать: не нравится

    Back

    • »
      »
      »
      15 лет назад, скрыть # ^ |
      ← Rev. 2  
      Проголосовать: нравится +3 Проголосовать: не нравится

      то, спасибо за ссылку конечно, но я хотел бы все таки сам решить, а там уже все решение как я понял

      P.S. теперь я просто понимаю, что ту задача которая передо мной стоит (не так что в теме), я могу и сам решить покопавшись немного в каких-либо статьях

  • »
    »
    15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    да там опечатка, должно быть не является делителем, а наоборот делится на p - (p/5). это следует из того, что написано в примечании, если я ничего под вечер не перепутал
    п.с. странно что факт в примечании вынесли в примечания, т.к. он нифига не примичание, автор этой статьи позиционировал его как основной результат, известный про период писано :)
  • »
    »
    15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    пользуясь случаем обсуждения чисел Фибоначчи, хочу спросить, видел ли кто доказательство утверждения "Для всех положительных целых чисел m справедливо неравенство "?
    оно очень похоже на верное, но его доказательство должно быть нетривиальным и довольно интересным, потому что вот здесь была задача про период Писано и не одна из докладывавших команд не доказала линейность
    • »
      »
      »
      15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится -27 Проголосовать: не нравится
      я знаю примерно доказательство (по крайне мере, я так думаю), но мне лень писать, ибо у меня получается оно довольно длинное...(
»
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Задача с идущего контеста.
*full of sarcasm*Но спасибо, что помогли человеку ее решить.
  • »
    »
    15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    А что за контест?
  • »
    »
    15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится -39 Проголосовать: не нравится

    ну даже если она и отсюда,

    1) я же не попросил конкретно решить ее, тут еще и свести надо

    2) если бы я хотел я бы посмотрел по ссылке и думаю, у меня было бы 160 по ней уже (судя по тому что, этот сайт вроде международный форум АСМ программистов)

    • »
      »
      »
      15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +3 Проголосовать: не нравится
      1. Как будто это так сложно, свести ее к той что на контесте.
      2. От того, кто клянчил у других решение задачи на GCJ вполне ожидаемый ответ. Но ведь никто не будет спорить что это как минимум некрасиво - просить подсказку на задачу с идущего контеста.
      • »
        »
        »
        »
        15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится -34 Проголосовать: не нравится

        согласись, я мог бы просто банально решение найти, это было бы еще более некрасивее

        (хочешь верь, хочешь нет) но ничего нового я не узнал, сколько мучался целый день, со свойствами в вики, тестинг раунд написал, снова начал мучаться и что-то стало получаться... 

        по крайней мере я себя виноватым не считаю по 2 вышеуказаным причинам...