2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4
 
 Re: Перманент матрицы
Сообщение06.07.2023, 03:21 
Модератор
Аватара пользователя


11/01/06
5660
wrest в сообщении #1600055 писал(а):
Скажите пож-ста, 40 секунд Sage и 8 секунд PARI/GP -- это один и тот же комп? В коде Sage как я понимаю включена мемоизация (хотя там мне кажется и хитов нету), так что рекурсия против прямого цикла вроде не проблема. Или разные компы?

Комп один и тот же. Просто Sage проигрывает в производительности PARI/GP, ничего удивительного.

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение06.07.2023, 05:41 
Заслуженный участник


12/08/10
1625
Geen в сообщении #1600042 писал(а):
На самом деле меньше

Длинна чисел $O(n\log(n))$

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение06.07.2023, 08:08 


23/02/12
3145
maxal в сообщении #1600061 писал(а):
Комп один и тот же. Просто Sage проигрывает в производительности PARI/GP, ничего удивительного.
Конечно время счета одного и того же алгоритма зависит от программы и производительности компа. Сложность алгоритма зависит от количества длинных и коротких операций или от средней длины числа. В данном случае наилучший показатель:

-- 06.07.2023, 08:09 --

Null в сообщении #1600064 писал(а):
$O(n\log(n))$

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение08.07.2023, 19:01 
Аватара пользователя


22/11/13
502
Ну что ж, наверное стоит добавить результаты в OEIS. Предлагаю следующие варианты программ на PARI/GP:

A204262
Код:
upto(n)=my(v1); v1=vector(n+1, i, i--; i!*x^i); for(i=1, n, for(j=i, n, my(A=intformal((j-i)^2*v1[j])); v1[j+1] = A + subst(v1[j+1] - A, x, i))); v1

A204264
Код:
a(n)=if(n==0, 1, my(v1); v1=vector(n+1, i, i--; i!*x^i); for(i=1, n, for(j=i, n, my(A=intformal((j-i)^2*v1[j])); v1[j+1] = A + subst(v1[j+1] - A, x, n - i + 1))); v1[n+1])

Добавил бы сам, но у меня все 3 слота правок заняты. Желательно также добавить ссылку на эту тему. Если кто-нибудь откроет правку к A204262, то я смогу добавить туда свою формулу (если успею до аппрува). Результат участника Null тоже желательно оформить формулой (при этом я не уверен как это правильно сделать).

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение08.07.2023, 22:00 


05/09/16
11534
kthxbye
Сделайте так, чтобы код не зависел от того, определён ранее x или нет.
Иначе может быть так:
Код:
? x=6;
? upto(3)
  ***   at top-level: upto(3)
  ***                 ^-------
  ***   in function upto: ...1[j+1]=A+subst(v1[j+1]-A,x,i)));v1
  ***                                                 ^---------
  ***   incorrect type in evaluator [variable name expected] (t_INT).
  ***   Break loop: type 'break' to go back to GP prompt
break>

И это в лучшем случае. В худшем - может неверно считать.

Например, вместо upto(n)=my(v1); сделайте upto(n)=my(v1, x='x);

Да, и по правилам хорошего тона, вместо A=intformal((j-i)^2*v1[j]) лучше писать A=intformal((j-i)^2*v1[j],x)

P.S. Но в целом, хотел вам сказать что я весьма впечатлён. Хороший код, ничего лишнего. Прогресс налицо!
P.P.S. Меня смущает intformal() но я не знаю, ускорит ли тут что-то "прямой" код.

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение09.07.2023, 14:25 


05/09/16
11534
Ещё процентов на 20 побыстрее:
Код:
{upto(n)=
my(v,x='x,A);
v1=vector(n+1,i,i--;i!*x^i);
for(i=1,n,
  for(j=i,n,
    if(i==j,A=0,A=intformal((j-i)^2*v[j],x));
    if(j>(2*i),v[j+1]=A,v1[j+1]=A+subst(v[j+1]-A,x,i))
  )
);
return(v)}

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение09.07.2023, 15:15 
Заслуженный участник


12/08/10
1625
wrest в сообщении #1600404 писал(а):
Код:
if(j>(2*i),v[j+1]=A,v1[j+1]=A+subst(v[j+1]-A,x,i))

Да. Матрица с большим квадратом из 0 имеет нулевой перманент.

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение09.07.2023, 15:47 


05/09/16
11534
Нельзя ли снизить сложность до $O(n^2)$?

 Профиль  
                  
 
 Re: Перманент матрицы
Сообщение12.07.2023, 18:52 
Аватара пользователя


22/11/13
502
Задал вопрос на MathOverflow и получил ответ от Теренса Тао. Оказывается, моя формула непосредственно связана с формулой участника Null.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3, 4

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



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

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


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

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