2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Период трибоначчи по модулю
Сообщение07.07.2022, 17:06 
Заслуженный участник


26/05/14
981
Числа трибоначчи: $t_0 = 0, t_1 = 0, t_2 = 1, t_{n + 3} = t_{n + 2} + t_{n + 1} + t_n$. Требуется отыскать период последовательности $a_n = t_n \bmod 10^9 + 7$.

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 17:28 
Заслуженный участник


20/04/10
1888
$n=10^9+7$ простое, тогда $\pi\mid n^3-1$ (это не всегда работает, возможно что-то типа $\pi\mid n(n^2-1)$. Разложение $n^3-1=2\times 6067\times 500000003\times 164826110927971$. То есть период равен некоторому значению из
Код:
\{1, 2, 6067, 12134, 500000003, 1000000006, 3033500018201,
6067000036402, 164826110927971, 329652221855942, 1000000015000000057,
2000000030000000114, 82413055958463832783913,
164826111916927665567826, 500000010500000073500000171,
1000000021000000147000000342\}
Вроде можно проверить, какое число подходит, пользуясь алгоритмом эффективного вычисления термов рекурсии по модулю

Сейчас проверил численно, верно следующее: $\pi\mid n^2-1$, то есть множество выше не подходит.
Действительно, вот машина нашла $\pi=20833333625000001$

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 18:31 
Модератор
Аватара пользователя


11/01/06
5710
slavav в сообщении #1559658 писал(а):
Числа трибоначчи: $t_0 = 0, t_1 = 0, t_2 = 1, t_{n + 3} = t_{n + 2} + t_{n + 1} + t_n$. Требуется отыскать период последовательности $a_n = t_n \bmod 10^9 + 7$.

С учётом простоты модуля, в PARI/GP вычисляется так:
Код:
? p = 10^9+7
%1 = 1000000007

? f = factormod(x^3-x^2-x-1, p)
%2 =
[                                 Mod(1, 1000000007)*x + Mod(512913426, 1000000007) 1]
[Mod(1, 1000000007)*x^2 + Mod(487086580, 1000000007)*x + Mod(242409634, 1000000007) 1]

? lcm( fforder(ffgen(f[1,1])), fforder(ffgen(f[2,1])) )
%3 = 20833333625000001

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 19:27 
Заслуженный участник


20/04/10
1888
Небольшой оффтоп.
maxal
Интересно, как быстро PARI/GP умеет вычислять, к примеру, $t_n \bmod n$, где $n=11^{10245}$. У меня время порядка $40$ секунд, но это собственный код в Wolfram.

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 19:39 
Заслуженный участник


26/05/14
981
lel0lel, откуда берутся гипотезы про делимость?

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 19:51 
Заслуженный участник


20/04/10
1888
Так понимаю, что из анализа группы единиц, по аналогии с https://en.wikipedia.org/wiki/Pisano_period

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 20:07 
Модератор
Аватара пользователя


11/01/06
5710
lel0lel в сообщении #1559677 писал(а):
Интересно, как быстро PARI/GP умеет вычислять, к примеру, $t_n \bmod n$, где $n=11^{10245}$. У меня время порядка $40$ секунд, но это собственный код в Wolfram.

Такой код:
Код:
n=11^10245; M = matcompanion(x^3-x^2-x-1)*Mod(1,n); M^n;

у меня в GP выполнился за полторы минуты. Но надо понимать, что это в интерпретаторе. Если скомпилировать, то должно ускориться в разы.

-- Thu Jul 07, 2022 12:15:36 --

slavav в сообщении #1559678 писал(а):
lel0lel, откуда берутся гипотезы про делимость?

Это не гипотезы, а нечетко сформулированные утверждения. Строгое изложение теории можно найти в учебнике
Глухов М. M., Елизаров В. П., Нечаев А. А. Алгебра.
См. глава 25 § 9. Вычисление периода и длины подхода ЛРП над конечным полем

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 20:33 
Заслуженный участник


20/04/10
1888
maxal в сообщении #1559683 писал(а):
у меня в GP выполнился за полторы минуты. Но надо понимать, что это в интерпретаторе. Если скомпилировать, то должно ускориться в разы.

Удивительно, что в разы, если правильно понимаю, то интерпретатор занимается "промежуточным анализом исходного кода и планированием его выполнения", но ведь ваш код не громоздкий. Это я всё к тому, что очень удивительно, что в большинстве пакетов не реализован алгоритм Fiduccia, с его помощью можно многие операции выполнять быстрее. Я проверял ускорение только в Wolfram и Maple, всюду это разы, а на больших степенях десятки и сотни.

 Профиль  
                  
 
 Re: Период трибоначчи по модулю
Сообщение07.07.2022, 20:47 
Модератор
Аватара пользователя


11/01/06
5710
lel0lel в сообщении #1559686 писал(а):
Удивительно, что в разы, если правильно понимаю, то интерпретатор занимается "промежуточным анализом исходного кода и планированием его выполнения", но ведь ваш код не громоздкий.

С этим кодом может не будет большого ускорения. Изначально у меня был цикл с возведениями в степень 11 - вот там ускорении более реально.
lel0lel в сообщении #1559686 писал(а):
Это я всё к тому, что очень удивительно, что в большинстве пакетов не реализован алгоритм Fiduccia, с его помощью можно многие операции выполнять быстрее.

В лоб Fiduccia реализуется как
Код:
n=11^10245; Mod(x,(x^3-x^2-x-1)*Mod(1,n))^n;

что дает ускорение ~10% по сравнению с предыдущим вариантом.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group