fixfix
2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 25  След.
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение23.11.2014, 04:14 


22/11/14

43
whitefox в сообщении #934218 писал(а):
Все числа $\Phi(m),\gcd(ab)$ являются константами и вычислены заранее.

Хочется также отметить, что и индексные множества, по которым ведется суммирование, тоже вычисляются заранее.

-- 23.11.2014, 04:20 --

whitefox в сообщении #934630 писал(а):
Также должно быть:$$B=\left((x_b-x_a)^2+(y_b-y_a)^2\right)(a+b-2\gcd(a,b))$$

А как эта формула работает, если, например, $a = 3$ для матрицы второго порядка?

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение23.11.2014, 19:35 


22/11/14

43
whitefox в сообщении #934218 писал(а):
Если поменять местами числа $a$ и $b$, то изменение числа Делакорта вычисляется по формуле:$$\Delta D=A-B-2C_x-2C_y$$

Поменяем местами два числа: тогда левая часть поменяет знак, а в правой не изменит знак только $B$. Сложим почленно 2 уравнения и получим:$$\/0=-2*B$. Впечатляет.

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение23.11.2014, 19:57 


16/08/05
1154
Помогите найти ошибку на примере случайного квадрата $5\times 5$

(квадрат)


(код)


 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение23.11.2014, 20:02 


22/11/14

43
dmd

Вы прочитали мое последнее сообщение? Полагаю, что сначала ошибку должен исправить автор формул.

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 00:14 
Аватара пользователя


01/06/12
1016
Adelaide, Australia
dmd в сообщении #935201 писал(а):
Помогите найти ошибку на примере случайного квадрата $5\times 5$

(квадрат)


(код)



Надо N*N/k, а у вас N/k. Суммировать надо от 2 до N*N/2. Еще мне кажется оригинальная формула не совсем работает, особенно B.

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 05:37 


22/11/14

43
dimkadimon в сообщении #935306 писал(а):
Еще мне кажется оригинальная формула не совсем работает, особенно B.

B принципиально правильно работать не может, что я выше и показал. Остальные члены правильно себя ведут, вопрос только в том, насколько правильно.

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 08:43 


16/08/05
1154
dimkadimon в сообщении #935306 писал(а):
Надо N*N/k, а у вас N/k.

Извиняюсь, забыл скопировать первую строчку. У меня несколько другие обозначения, $N$ это 25 (квадрат 5х5). Т.е. там вначале еще строчка
Код:
n=5;N=n^2;


dimkadimon в сообщении #935306 писал(а):
Суммировать надо от 2 до N*N/2.

Вот в этом месте больше всего непонятно. Формула для $\Delta D$ содержит $a$ и $b$, которые должны меняться от 1 до 25 (квадрат 5х5), они не могут меняться от 2 до 12. Впрочем первая формула для $D$, в которой соответствующую сумму я правильно посчитал от от 2 до 12, тоже не дала (в моём изложении) нужного значения.

-- Пн ноя 24, 2014 10:54:44 --

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

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 10:16 


16/08/05
1154
Ага, я нашёл свою ошибку и теперь первая формула для полного $D$ у меня правильно считается. Но формула для $\Delta D$ под вопросом.

Давайте сверим для случайного квадрата векторы $\Psi_x$, $\Psi_y$, $\Phi$:

Код:
X=
(18,1,13,23,4),(8,5,10,25,2),(3,12,7,20,17),(15,19,21,22,6),(16,11,24,14,9)

DN= 4715

PsiX=
[75, 74, 174, 152, 260, 156, 504, 384, 324, 200, 990, 384, 156, 420, 480, 640, 816, 108, 1368, 480, 1008, 880, 506, 960, 1000]

PsiY=
[75, 76, 126, 128, 280, 132, 420, 160, 324, 280, 660, 240, 468, 336, 120, 128, 1360, 108, 684, 640, 756, 880, 2024, 576, 2000]

Phi=
[25, 24, 48, 48, 100, 48, 126, 96, 108, 80, 220, 96, 156, 84, 120, 128, 272, 108, 342, 160, 252, 220, 506, 192, 500]

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 10:53 


22/11/14

43
dmd
Я ведь указал на явную ошибку в исходных формулах whitefox'а: для чего тогда что-то с чем-то сверять и отнимать у людей время?

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 14:58 
Заслуженный участник
Аватара пользователя


19/12/10
1546
dmd в сообщении #934795 писал(а):
Почему при перестановке двух чисел в квадрате оказалось не нужным полностью пересчитать таблицы $\Psi_x$ и $\Psi_y$, а достаточно только в них пересчитать по паре чисел формулами

$\Psi'_x(a)=\Psi_x(a)+(x_b-x_a)(a-\gcd(a,b))$

$\Psi'_y(a)=\Psi_y(a)+(y_b-y_a)(a-\gcd(a,b))$

$\Psi'_x(b)=\Psi_x(b)+(x_a-x_b)(b-\gcd(a,b))$

$\Psi'_y(b)=\Psi_y(b)+(y_a-y_b)(b-\gcd(a,b))$


Ну т.е. хорошо если это так. Но на первый взгляд выглядит неправдоподобно легко.

Herbert Kociemba в сообщении #934646 писал(а):
The reason is that I think it is not sufficient to update only $\Psi_x()$ and $\Psi_y()$ for a and b but also you have to update it for all divisors of a and b.

Вы совершенно правы. Обновления $\Psi_x,\Psi_y$ только для $a$ и $b$ совершенно не достаточно. Нужно обновлять эти значения для всех $m$ таких, что $\gcd(m,a)\ne\gcd(m,b)$ по следующим формулам: $$\Psi'_x(m)=\Psi_x(m)+(x_b-x_a)(\gcd(m,a)-\gcd(m,b))$$ $$\Psi'_y(m)=\Psi_y(m)+(y_b-y_a)(\gcd(m,a)-\gcd(m,b))$$Но выполнять эти вычисления нужно только при фактическом выполнении обмена $a\leftrightarrow b.$ Сложность обновления составит $O(n^2).$ При этом оценка $O(1)$ остаётся справедливой для вычисления $\Delta D.$ То есть данный метод "зеркален" второму методу dimkadimon. Там сложность вычисления $\Delta D$ есть $O(n^2)$, а сложность обмена $a\leftrightarrow b$ есть $O(1).$ При предложенном подходе ускорение достигается за счёт того, что обмены $a\leftrightarrow b$ производятся значительно реже чем вычисление $\Delta D.$

-- 24 ноя 2014, 15:22 --

sevir в сообщении #935198 писал(а):
Поменяем местами два числа: тогда левая часть поменяет знак, а в правой не изменит знак только $B$. Сложим почленно 2 уравнения и получим: $0=-2B$. Впечатляет.

Обратите внимание, что формула для $\Delta D$ симметрична по $a$ и $b.$ Вот, что получится при замене в формуле $a\leftrightarrow b:$ $$A=\left(x^2_a-x^2_b+y^2_a-y^2_b\right)\left(\Phi(b)-\Phi(a)\right)=\left(x^2_b-x^2_a+y^2_b-y^2_a\right)\left(\Phi(a)-\Phi(b)\right)$$ $$C_x=(x_a-x_b)\left(\Psi_x(b)-\Psi_x(a)\right)=(x_b-x_a)\left(\Psi_x(a)-\Psi_x(b)\right)$$ $$C_y=(y_a-y_b)\left(\Psi_y(b)-\Psi_y(a)\right)=(y_b-y_a)\left(\Psi_y(a)-\Psi_y(b)\right)$$Как видите, знак не меняется у всех компонент $\Delta D.$

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 16:00 
Заслуженный участник
Аватара пользователя


19/12/10
1546
sevir в сообщении #934968 писал(а):
А как эта формула работает, если, например, $a = 3$ для матрицы второго порядка?

Порядок матрицы в эту формулу не входит, поэтому она работает на матрицах второго порядка точно также как и на матрицах любого другого порядка. Например, $a=3,b=1$ тогда $B=2((x_3-x_1)^2+(y_3-y_1)^2).$

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 16:04 


22/11/14

43
whitefox в сообщении #935494 писал(а):
Обратите внимание, что формула для $\Delta D$ симметрична по $a$ и $b.$

Я не про это: если бы она не была симметрична в том смысле, о котором Вы пишете, то ваши формулы вообще потеряли бы всякий смысл. Я говорил о том, что мы рассматриваем две разные матрицы, которые отличаются только перестановкой двух элементов. И к этим элементам применяем ваше преобразование как в первой матрице, так и во второй. Тогда числа Делакорта должны отличаться только знаками. Но этого не будет из-за того, о чем я уже ранее говорил.

-- 24.11.2014, 16:17 --

whitefox в сообщении #935517 писал(а):
sevir в сообщении #934968 писал(а):
А как эта формула работает, если, например, $a = 3$ для матрицы второго порядка?

Порядок матрицы в эту формулу не входит, поэтому она работает на матрицах второго порядка точно также как и на матрицах любого другого порядка. Например, $a=3,b=1$ тогда $B=2((x_3-x_1)^2+(y_3-y_1)^2).$

Я говорил о 3-ке, привязанной именно к матрице второго порядка, т.к. она только в ней лежит за "экватором": поменяв местами тройку и единицу, мы ничего не изменим, но для пары $a=3,b=2$ $B$ будет одно, а для пары $a=1,b=2$ $B$ будет другим.

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 16:18 
Заслуженный участник
Аватара пользователя


19/12/10
1546
sevir в сообщении #935518 писал(а):
Тогда числа Делакорта должны отличаться только знаками. Но этого не будет из-за того, о чем я уже ранее говорил.

Вы не учли, что эти матрицы имеют различные значения $\Psi_x,\Psi_y$. Как результат -- их $\Delta D$ различаются только знаком.

-- 24 ноя 2014, 16:22 --

sevir в сообщении #935518 писал(а):
поменяв местами тройку и единицу, мы ничего не изменим, но для пары $a=3,b=2$ $B$ будет одно, а для пары $a=1,b=2$ $B$ будет другим.

А $\Delta D$ тоже будет разным?

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 16:23 


22/11/14

43
whitefox в сообщении #935521 писал(а):
sevir в сообщении #935518 писал(а):
Тогда числа Делакорта должны отличаться только знаками. Но этого не будет из-за того, о чем я уже ранее говорил.

Вы не учли, что эти матрицы имеют различные значения $\Psi_x,\Psi_y$. Как результат -- их $\Delta D$ различаются только знаком.

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

-- 24.11.2014, 16:32 --

whitefox в сообщении #935521 писал(а):
А $\Delta D$ тоже будет разным?

Естественно: ведь я беру новую матрицу с переставленными тройкой и единицей, хотя $\Delta D$ не должно меняться.

 Профиль  
                  
 
 Re: Al Zimmerman - Delacorte Numbers
Сообщение24.11.2014, 16:52 
Заслуженный участник
Аватара пользователя


19/12/10
1546
sevir в сообщении #935523 писал(а):
Естественно: ведь я беру новую матрицу с переставленными тройкой и единицей, хотя $\Delta D$ не должно меняться.

Пример приведите, пожалуйста.

-- 24 ноя 2014, 16:57 --

Herbert Kociemba в сообщении #934878 писал(а):
But I claim that the algorithm of whitefox is not O(1) but O(Log(N))=O(Log(N^2)) as I wrote before.
jcmeyrignac в сообщении #934965 писал(а):
In fact, Whitefox' algorithm is O(1) for computing the score of swapping a pair.

But the swapping requires to update at most 29+23 products, for example when swapping 720 and 672 on a 27x27 grid.
So the algorithm is indeed O(1+log(n))

Можно $\Psi_x,\Psi_y$ не хранить, а вычислять в процессе вычисления $\Delta D.$ При этом хранить $X_k,Y_k$ и обновлять их при фактическом выполнении обмена $a\leftrightarrow b.$ В этом случае сложность вычисления $\Delta D$ и сложность пересчёта $X_k,Y_k$ будет пропорциональна числу делителей $a$ и $b,$ то есть в среднем $O(\log n).$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 373 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 25  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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