2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5 ... 29  След.
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение12.09.2015, 06:52 
Аватара пользователя


10/11/12
121
Бобруйск
Nataly-Mak в сообщении #1052744 писал(а):
К фразам не надо придираться. Описание было составлено один раз. Потом оно корректировалось в связи с поступившими замечаниями. У нас с ice00 существует языковой барьер, поэтому я страюсь сводить правки к минимуму. Тяжело объясняться, понимате?
К тому же, я совсем не знаю английский, а Google переводчик ещё тот, иногда такое напереводит.
Поэтому я и даю здесь пояснения - по-русски. Надеюсь, мой русский всё же лучше моего английского :-)

Я не придираюсь. Честно! И мой последний вопрос был не о задаче №2, там с начислением баллов всё понятно было, а о задаче №1.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение12.09.2015, 06:53 


18/11/10
75
Nataly-Mak в сообщении #1052744 писал(а):
В данный момент Jarek в задаче #2 имеет 3 балла; это значит, что он ввёл решения с минимальным диаметром для трёх разных значений $k$.

I confirm - in Task 2 I have submitted:
$k=15,\ \ \ d=180,$
$k=17,\ \ \ d=240,$
$k=18,\ \ \ d=82.$

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение12.09.2015, 06:58 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Vovka17 в сообщении #1052745 писал(а):
И мой последний вопрос был не о задаче №2, там с начислением баллов всё понятно было, а о задаче №1.

А, о задаче #1... Простите, не поняла.
Но о задаче #1 я тоже вроде давала пояснения.
Вот:
Nataly-Mak в сообщении #1052277 писал(а):
Несколько штрихов к задаче #1

Для чётных $k$ решение недавно найдено для $k=24$ участником проекта распределённых вычислений Begemot82. Смотрите последовательность в OEIS A081235.
Для нечётных $k$ решение найдено немного раньше для $k=15$ тоже участником проекта Dmitriy40. Смотрите последовательность в OEIS A055380.

А для $k=17$ решения уже найдены в рамках конкурса, их нашёл Jarek. Почему здесь говорится о решениях, а не об одном решении?
Потому что мы пока не знаем решение с минимальным элементом кортежа $p$.
На конкурс принимаются все КПППЧ длины $k>24$ для чётных $k$ и длины $k>15$ для нечётных $k$, и за каждое решение участник получает 1 балл. Наименьшее среди всех найденных решений для каждого $k$ мы определим после конкурса. Но и это решение может оказаться ещё не минимальным.


-- Сб сен 12, 2015 08:04:39 --

Jarek в сообщении #1052746 писал(а):
I confirm - in Task 2 I have submitted:
$k=15,\ \ \ d=180,$
$k=17,\ \ \ d=240,$
$k=18,\ \ \ d=82.$

Вы ввели для каждого $k$ не одно решение?

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение12.09.2015, 07:10 
Аватара пользователя


10/11/12
121
Бобруйск
Nataly-Mak, спасибо! Это значит я невнимательно читал...
Теперь мне, кажется, всё понятно.

(Оффтоп)

Бедная, несчастная задачка №2. Не дают за твои решения кучу баллов, как у остальных :-).

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение12.09.2015, 07:15 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Vovka17
не решайте задачу #2, решайте задачи #1 и #3, за которые дают кучу баллов :-)
Правда, просто так баллы и в этих задачах не дают :wink: надо ещё найти решения.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение12.09.2015, 17:31 
Заслуженный участник


20/08/14
11057
Россия, Москва
Хочу предупредить анонимов, если хотите сохранить свою анонимность, не пользуйтесь личными email для участия в головоломках (и конкурсах?) - на сайте http://www.primepuzzles.net их публикуют без спроса и разрешения!
Да и письма читают невнимательно, подписей с именами не видят ...

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение13.09.2015, 02:51 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Уже 41 квадрат у Jarek! Поразительно!
Такое ощущение, что участники проекта вообще не там искали квадраты :-)
Ещё раз приведу те квадраты, которые задают границы для магической константы пандиагональных квадратов 4-го порядка из последовательных простых чисел.

Квадрат №1 (нижняя граница)

Код:
23653934725904299: 0, 12, 22, 34, 48, 60, 70, 82, 90, 102, 112, 124, 138, 150, 160, 172

23653934725904299+
0  160  60  124
82  102  22  138
112  48  172  12
150  34  90  70

S=94615738903617540

Решение участника проекта Begemot82
post1035485.html#p1035485

Квадрат №2 (верхняя граница)

Решение Jarek
Цитата:
A smaller example can be constructed using
n=7410890552945019583 (19 digits), where n+d (d = 0, 6, 10, 16, 18, 24, 28, 34, 60, 66, 70, 76, 78, 84, 88, 94) are consecutive primes.

post751870.html#p751870
Код:
7410890552945019583+
0  88  16  84
76 24  60 28
78 10  94 6
34 66 18  70

S = 29643562211780078520

Итак, магическая константа $S$ пандиагональных квадратов 4-го порядка из последовательных простых чисел, представляемых на конкурс, должна быть такой:

$94615738903617540 < S < 29643562211780078520$

-- Вс сен 13, 2015 04:19:50 --

И весьма интересно:
квадрат №2, задающий верхнюю границу магической константы, находится в зоне действия генератора primesieve.

Тестирую программу whitefox.
Ввожу стартовую точку 7410890552000000000.
Решение находится на первой минуте:
Код:
7410890552945019583: 0 6 10 16 18 24 28 34 60 66 70 76 78 84 88 94

Вот так программа отработала:

Изображение

Итак, все квадраты, уже найденные Jarek, вполне могли найти участники проекта.
Но... участников два с половиной (половина - это я), техника маломощная... В результате имеем то, что имеем.
И остаётся восхищаться результатами Jarek. И разводить махровый пессимизм.

Ну, прочесать хотя бы весь интервал, заданный магической константой, выборочно, скажем, не каждый интервал длины 2 млрд проверять на квадрат, а каждый сотый интервал длины 2 млрд.
Придумать другие подходы. Один их них уже придуман - это поиск КПППЧ по заданному паттерну. Придумали, а толку-то, надо ведь ещё реализовать алгоритм, чтобы он прилично работал, как у Jarek работает.
Тут ведь уже на квадрат не надо проверять, все найденные КПППЧ автоматом будут давать квадрат.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение13.09.2015, 06:53 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
И ещё 10 квадратов нашёл Jarek!
Сколько ж их будет? 100, 500, 1000?
А я вот за всё время, сколько крутила программу whitefox, не нашла ни одного квадрата!
Такие дела...
Dmitriy40 нашёл 5 (или 6, точно не помню) квадратов, Begemot82 нашёл два квадрата.
maxal нашёл один квадрат (минимальный), но он работал сам по себе, не в рамках проекта.
И это всё! А проект действует около года.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение13.09.2015, 11:02 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Ещё раз о паттернах для КПППЧ длины 16, из которых точно составляется пандиагональный квадрат 4-го порядка.

Это минимальный квадрат, найденный maxal
Код:
170693941183817: 0, 30, 42, 44, 72, 74, 86, 90, 116, 120, 132, 134, 162, 164, 176, 206

170693941183817 +
0 176 74 162
116 120 42 134
132 44 206 30
164 72 90 86

S=682775764735680

Потенциальных паттернов с диаметром 206 моя программа выдаёт море:
Код:
0  2  30  32  42  44  72  74  132  134  162  164  174  176  204  206
0  6  14  20  30  36  44  50  156  162  170  176  186  192  200  206
0  6  14  20  36  42  50  56  150  156  164  170  186  192  200  206
0  6  14  20  60  66  74  80  126  132  140  146  186  192  200  206
0  6  14  20  66  72  80  86  120  126  134  140  186  192  200  206
0  6  20  26  54  60  74  80  126  132  146  152  180  186  200  206
0  6  24  30  36  42  60  66  140  146  164  170  176  182  200  206
0  6  24  30  50  56  74  80  126  132  150  156  176  182  200  206
0  6  24  30  56  62  80  86  120  126  144  150  176  182  200  206
0  6  24  30  60  66  84  90  116  122  140  146  176  182  200  206
. . . . . . . . . . . . . . . . .

Любой из них можно использовать для поиска КПППЧ по заданному паттерну.
Паттерн с минимально возможным диаметром (для составления квадрата):
Код:
0, 10, 12, 18, 22, 28, 30, 40, 42, 52, 54, 60, 64, 70, 72, 82

КПППЧ с таким паттерном найдены давным-давно Jarek, несколько штук.
Более того, он нашёл кучу решений уже сейчас по данному паттерну; но все эти решения с магической константой, не входящей в установленные границы для конкурса:
Код:
5782290971330101557799
86626497666472385701549
148519612556430230871589
252817794258769146656719
255297836561152277222779
365906478100144127235559
372892284538006573920049
374541929668867924737859
385250283458417894901469
603426671076333364284109
608439236788260892144579
634213218262601800883509
666857307384943839104389
689309475375265586661289

(здесь приведены первые элементы КПППЧ)
Разумеется, есть потенциальные паттерны и с другими диаметрами.
Предполагаю, что Jarek и сейчас ищет КПППЧ по каким-то конкретным паттернам.
Никак не могла ожидать, что КПППЧ, дающих пандиагональные квадраты 4-го порядка, будет так много.

А вот для пандиагонального квадрата 5-го порядка из последовательных простых чисел пока не найден ни один кортеж!
Может быть, их тоже существует куча, а мы не знаем ни одного :-)
Как много мы ещё не знаем!

-- Вс сен 13, 2015 12:32:36 --

Nataly-Mak в сообщении #1052962 писал(а):
Потенциальных паттернов с диаметром 206 моя программа выдаёт море:

А ещё больше есть паттернов с таким диаметром, из которых квадрат не составляется.
Например, найденные мной только за месяц работы программы whitefox:
Код:
22930821590056277: 0 30 36 50 56 60 66 80 126 140 146 150 156 170 176 206
28000615911568037: 0 14 36 44 50 56 92 96 110 114 150 156 162 170 192 206
28053195755543807: 0 6 44 50 60 62 72 102 104 134 144 146 156 162 200 206
28054923902962007: 0 32 50 56 60 72 74 86 120 132 134 146 150 156 174 206
28102160953117967: 0 14 24 50 66 72 80 92 114 126 134 140 156 182 192 206
28164131332619207: 0 2 6 24 56 60 74 102 104 132 146 150 182 200 204 206
28181688013370117: 0 2 20 56 62 74 84 92 114 122 132 144 150 186 204 206
28241163315925397: 0 12 14 24 62 80 96 102 104 110 126 144 182 192 194 206
28276092588965027: 0 2 14 32 44 50 74 86 120 132 156 162 174 192 204 206
28303182928519427: 0 14 26 54 60 62 66 84 122 140 144 146 152 180 192 206
28315450165944497: 0 26 44 50 66 84 92 96 110 114 122 140 156 162 180 206
28320886499372837: 0 6 12 14 24 32 62 80 126 144 174 182 192 194 200 206

Вот в этом огромном множестве паттернов есть подмножество таких, из которых квадрат гарантированно составляется.
Но это подмножество почему-то у нас очень плохо обнаруживается.
Всё мимо кассы :-)

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение13.09.2015, 14:59 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Множество и подмножество...
Вот два паттерна с диаметром 94 для КПППЧ длины 16, из которых составляются пандиагональные квадраты 4-го порядка (с ассоциативными квадратами Стенли здесь паттерны приведены):
Код:
0 4 24 28
6 10 30 34
60 64 84 88
66 70 90 94
0 4 6 10 24 28 30 34 60 64 66 70 84 88 90 94

0 6 18 24
10 16 28 34
60 66 78 84
70 76 88 94
0 6 10 16 18 24 28 34 60 66 70 76 78 84 88 94

Это подмножество - всего два паттерна.
Два известных решения (автор Jarek):
Код:
320572022166380833: 0, 6, 10, 16, 18, 24, 28, 34, 60, 66, 70, 76, 78, 84, 88, 94
7410890552945019583: 0, 6, 10, 16, 18, 24, 28, 34, 60, 66, 70, 76, 78, 84, 88, 94

Оба решения с одним и тем же паттерном. Со вторым паттерном я решения не знаю.

Теперь ищу по программе множество всех теоретических возможных паттернов для КПППЧ длины 16, их программа находит 244 штуки; показываю несколько первых и последних, а также те два, из которых квадрат составляется:
Код:
0  4  6  10  16  18  24  28  66  70  76  78  84  88  90  94
0  4  6  10  16  18  24  30  64  70  76  78  84  88  90  94
0  4  6  10  16  18  24  34  60  70  76  78  84  88  90  94
0  4  6  10  16  18  24  36  58  70  76  78  84  88  90  94
. . . . . . . . . . . . . . .

0  4  6  10  24  28  30  34  60  64  66  70  84  88  90  94
. . . . . . . . . . . . . . .
0  6  10  16  18  24  28  34  60  66  70  76  78  84  88  94
. . . . . . . . . . . . . . .
0  10  18  24  28  34  36  46  48  58  60  66  70  76  84  94
0  10  18  24  28  34  40  46  48  54  60  66  70  76  84  94
0  16  18  24  28  30  34  46  48  60  64  66  70  76  78  94
0  16  18  24  28  34  36  46  48  58  60  66  70  76  78  94

Вот так: из 244 теоретически возможных паттернов только два дают пандиагональный квадрат 4-го порядка.
А с диаметром 94 у меня не нашлась ни одна КПППЧ за всё время работы программы whitefox.
Редкие жемчужины!

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение14.09.2015, 03:25 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
У Jarek 71 квадрат!
У меня по-прежнему ни одного :cry:

В помощь тем, кто захочет поискать квадраты и другие кортежи, но не так, как это делается в программе whitefox, выкладываю исходный код этой программы:

(Исходный код программы)

Код:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <vector>
#include <set>
#include <ctime>
#include <Windows.h>
#include "primesieve.h"

using namespace std;

typedef unsigned long long ull;
enum poziciya{chasy,minuty,sekundy,sdelano,vremya,interval,provereno,skorostq,vsego_16,konec};
enum shablony{s_16=15,s_17,s_18,s_19,s_20,s_21,s_22,s_23,s_24,s_25,s_26,s_27,s_28,s_29,s_30,s_31,s_32,s_33};

const int dlina_intervala = 2000000000;
const int chislo_shablonov = 18;
const int max_smew = ((s_33 + 1) >> 1);
const int centr = (s_33 >> 1) - 1;
const int ss = 100;
const int sss = 1000000;
const COORD koord[] = {{40,0},{51,0},{54,0},{13,2},{49,0},{0,1},{0,2},{0,3},{12,4},{0,22}};

class _kursor{
   HANDLE ScrHandle;
public:
   _kursor(){ScrHandle = GetStdHandle(STD_OUTPUT_HANDLE);}
   void skrytq(){
      CONSOLE_CURSOR_INFO kursinf;   
      GetConsoleCursorInfo(ScrHandle , &kursinf);
      kursinf.bVisible = false;
      SetConsoleCursorInfo(ScrHandle , &kursinf);
   }
   void pokazatq(){
      CONSOLE_CURSOR_INFO kursinf;   
      GetConsoleCursorInfo(ScrHandle , &kursinf);
      kursinf.bVisible = true;
      SetConsoleCursorInfo(ScrHandle , &kursinf);
   }
   void pomestitq(COORD z){SetConsoleCursorPosition(ScrHandle, z);}
} kursor;

HANDLE hpotok;
DWORD idpotok;
UINT_PTR idTimer;
int speed, najdeno[chislo_shablonov];
ull start, endint, max_stop = primesieve::get_max_stop();
unsigned progress;
bool otobr, poisk, pros, provr;
vector<ull> primes;
clock_t nachtik;

void __stdcall TimerProc(HWND, UINT, UINT, DWORD);
DWORD __stdcall potok(void*);
bool vypolnitq();
bool init(int nabor[]);
void proverka(int nabor[]);
void vyvod(long long stprime, int nabor[], int st, int shablon);
void prov_ne_poln(int nabor[]);
void prov_nach_ne_poln(int nabor[]);
inline void vremya_vyvod(){
   static int tik, minuta, chas;   
   if(tik > 57){
      tik = 0;
      if(minuta > 58){
         minuta = 0;
         chas++;
         kursor.pomestitq(koord[chasy]);   
         cout << setw(10) << chas;
      }
      else minuta++;
      kursor.pomestitq(koord[minuty]);
      cout << setw(2) << setfill('0') << minuta;
      kursor.pomestitq(koord[sekundy]);
      cout << setw(2) << tik << setfill(' ');
   }
   else{
      tik +=2;            
      kursor.pomestitq(koord[sekundy]);
      cout << setw(2) << setfill('0') << tik << setfill(' ');
   }
}
inline void inf_pros(){
   kursor.pomestitq(koord[interval]);
   cout << "Текущий интервал: [" << start << " ... " << endint << "]\nПросеяно  :      0%";
   kursor.pomestitq(koord[skorostq]);
   cout << "Скорость  : ";
   if(speed) cout << setw(6) << speed;
   else for(int i = s_16; i <= s_33; i++) cout << "\nНайдено " << (i + 1) << ':';
   pros = false;
}
inline void inf_provr(){
   kursor.pomestitq(koord[provereno]);
   cout << "Проверено :      0%";
   provr = false;
}
inline void inf_otobr(){
   unsigned t;
   kursor.pomestitq(koord[sdelano]);
   if(poisk){
      t = progress / ((primes.size() - 1) / ss);
      cout << setw(5) << t;
      COORD krd = koord[vsego_16];
      for(int i = 0; i < chislo_shablonov; i++, krd.Y++){
         kursor.pomestitq(krd);
         cout << setw(6) << najdeno[i];
      }
   }
   else{
      t = primes.size() / sss;
      cout << setw(5) << t;
   }
}
inline void proverka_ch(int nabor[], int st, int i){
   for(int j = 1, t = centr + st; j <= 7; j++){
      if(nabor[(t - j) & s_32] != nabor[(t + j) & s_32]) return;
   }
   vyvod(primes[i - s_25], nabor, st + 8, s_16);
   for(int j = 8, t = centr + st; j <= centr; j++){
      if(nabor[(t - j) & s_32] != nabor[(t + j) & s_32]) return;
      vyvod(primes[i - s_18 - j], nabor, st + s_16 - j, s_16 + ((j - 7) << 1));
   }
}
inline void proverka_nch(int nabor[], int st, int i){
   for(int j = 0, t = centr + st; j <= 7; j++){
      if(nabor[(t - j) & s_32] != nabor[(t + j + 1) & s_32]) return;
   }
   vyvod(primes[i - s_25], nabor, st + 8, s_17);
   for(int j = 8, t = centr + st; j <= centr; j++){
      if(nabor[(t - j) & s_32] != nabor[(t + j + 1) & s_32]) return;
      vyvod(primes[i - s_18 - j], nabor, st + s_16 - j, s_17 + ((j - 7) << 1));
   }
}
inline void prov_nach(int nabor[], int i, int k){
   for(int j = 0; j < (i >> 1); j++) if(nabor[k + j] != nabor[i - 1 + k - j]) return;
   vyvod(primes[k], nabor, k, i);
}

int main(){
   setlocale(LC_CTYPE, "rus");
   system("cls");
   kursor.skrytq();
   cout << "Поиск ассоциативных наборов простых";
   kursor.pomestitq(koord[vremya]);   
   cout << "0:00:00";
   hpotok = CreateThread(NULL, 0, potok, NULL, 0, &idpotok);   
   idTimer = SetTimer(NULL, 1, 2000, TimerProc);
   MSG msg;   
   while(true){
      GetMessage(&msg, NULL, 0, 0);
      DispatchMessage(&msg);
   }   
   return 0;
}

DWORD __stdcall potok(void*){
   ifstream fin("start.txt");
   if(fin) fin >> start;
   fin.close();
   start &= 0xfffffffffffffffe;
   while(vypolnitq());
   KillTimer(NULL, idTimer);
   Sleep(100);
   cout << "\n\nДостигнут максимум " << max_stop << "\nДля выхода нажмите любую клавишу . . .\n";
   system("pause > nul");
   kursor.pokazatq();
   exit(0);
   return 0;
}

void __stdcall TimerProc(HWND, UINT, UINT, DWORD){
   vremya_vyvod();
   if(pros) inf_pros();
   if(provr) inf_provr();
   if(otobr) inf_otobr();
   kursor.pomestitq(koord[konec]);
}

bool vypolnitq(){
   if(start >= max_stop) return false;
   endint = min(start + dlina_intervala, max_stop);
   if(!otobr) otobr = true;
   pros = true;   
   poisk = false;
   primes.clear();
   nachtik = clock();
   primesieve::generate_primes(start, endint, &primes);
   if(primes.size() <= s_16) return false;
   int nabor[s_33];
   if(!init(nabor)) return false;
   proverka(nabor);
   return true;
}

bool init(int nabor[]){
   static bool inicial;
   if(inicial){
      if(primes.size() <= s_33){
         if(primes.size() == s_33) prov_ne_poln(nabor);
         return false;
      }
      for(int i = 0; i < s_33; i++) nabor[i] = int(primes[i + 1] - primes[i]);
   }else{
      if(primes.size() <= s_33){
         prov_nach_ne_poln(nabor);
         return false;
      }
      for(int i = 0; i < s_33; i++) nabor[i] = int(primes[i + 1] - primes[i]);
      for(int i = s_16; i <= s_30; i++)
         for(int k = 0; k < max_smew - ((i + 1) >> 1); k++) prov_nach(nabor, i, k);
      inicial = true;
   }
   return true;
}

void proverka(int nabor[]){
   poisk = provr = true;
   int st = 0;
   for(size_t i = s_33;; i++){
      proverka_ch(nabor, st, i);
      proverka_nch(nabor, st, i);
      if(i >= primes.size() - 1) break;
      nabor[st] = int(primes[i + 1] - primes[i]);   
      st = (st + 1) & s_32;
      progress = i;
   }
   speed = int(7200000.0 / (clock() - nachtik) + 0.5);
   start = primes[primes.size() - s_33] - 1;
   ofstream fout("start.txt");
   fout << start;
   fout.close();
}

//s_17 - ((shablon + 1) >> 1)

void vyvod(long long  stprime, int nabor[], int st, int shablon){
   ostringstream imya;
   imya << "kpppch_" << (shablon + 1) << ".txt";
   ofstream fout(imya.str(), ios::out | ios::app);
   fout << stprime << ": 0";
   for(int i = 0, sum = 0; i < shablon; i++) fout << ' ' << (sum += nabor[(st + i) & s_32]);
   fout << endl;
   najdeno[shablon - s_16]++;
}

void prov_ne_poln(int nabor[]){
   for(int i = 0; i < s_32; i++) nabor[i] = int(primes[i + 1] - primes[i]);
   for(int i = s_16; i <= s_31; i++){
      for(int j = s_16 - ((i + 1) >> 1); j <= s_20 - ((i + 2) >> 1); j++){
         for(int k = 0; k < (i >> 1); k++){if(nabor[k + j] != nabor[i - 1 - k + j]) goto next;}
         vyvod(primes[j], nabor, j, i);
next:      ;
      }
   }
}

void prov_nach_ne_poln(int nabor[]){
   int raz = primes.size() - 1;
   for(int i = 0; i < raz; i++) nabor[i] = int(primes[i + 1] - primes[i]);
   for(int i = s_16; i <= raz; i++){
      for(int j = 0; j <= raz - i; j++){
         for(int k = 0; k < (i >> 1); k++){if(nabor[k + j] != nabor[i - 1 - k + j]) goto next;}
         vyvod(primes[j], nabor, j, i);
next:      ;
      }
   }
}

Это одна из промежуточных версий, которой я сейчас пользуюсь (без прибамбасов, добавленных в последней версии).
Модифицируйте :!:
Просеивание подряд дало за год квадратов 7-8 штук! Не дало ни одной 17-ки!

Мне пишут товарищи программисты, что для компиляции потребуется библиотека, которую можно найти здесь.
Ещё (уже сообщала здесь): Progger написал мне, что программу надо компилировать под 64-bit, это резко увеличивает скорость (у меня на 60%).

Я попросила товарища добавить в программу поиск КПППЧ длин 12 - 15. Он это добавил в код программы, но у него нет компилятора. Попросила другого товарища скомпилировать. Жду.
Хочу хотя бы посмотреть на эти кортежи.

Один из следующих путей модификации тоже уже озвучила: это выборочное просеивание, не всё подряд.
Изобретайте другие пути :!:

-- Пн сен 14, 2015 04:50:25 --

Кстати, о сложности задач...
Для Jarek, как я понимаю, самая простая задача #3 - поиск пандиагональных квадратов.
Решения в двух других задачах у него тоже есть, но они не так быстро прибывают :-)

Может быть, кому-то будет более простая задача #1.
А что - требуется найти любое решение (с любыми $p$ и $d$), потому что пока нет никаких. Найдите хоть какую-нибудь 19-ку! Разумеется, с числами, состоящими не из 1000 цифр. В конкурсе максимально допустимые числа - не более 100 цифр. Такие числа Wolfram Alpha проверяет.
Ну, хоть какую-нибудь 21-ку найдите :wink:

Ну, а чем плоха задача #2? Уже нашли готовые паттерны с минимальными диаметрами для длин до $k=30$.
Берёте готовый паттерн - и вперёд! Всего одно решение надо найти для каждого $k$ - с любым $p$. Этого достаточно, чтобы получить балл.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение14.09.2015, 05:27 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Мини-исследование

Посмотрела в своих результатах, какой у меня самый маленький диаметр КПППЧ длины 16, оказалось - 136.
Вот найденные решения с этим диаметром:
Код:
28054261588118257: 0 6 22 24 42 46 52 60 76 84 90 94 112 114 130 136
28413352819464937: 0 22 24 30 36 46 52 60 76 84 90 100 106 112 114 136
28538246694170047: 0 4 24 30 42 52 64 66 70 72 84 94 106 112 132 136
100059895272251587: 0 10 12 22 24 36 54 66 70 82 100 112 114 124 126 136

Квадраты из этих КПППЧ не составились.

Теперь стало интересно: сколько всего потенциальных паттернов с таким диаметром :?:
Запускаю программу, программа выдаёт 7484 паттерна!
Показываю несколько первых и последних:
Код:
0  4  6  10  12  24  34  42  94  102  112  124  126  130  132  136
0  4  6  10  12  24  34  46  90  102  112  124  126  130  132  136
0  4  6  10  12  24  34  54  82  102  112  124  126  130  132  136
0  4  6  10  12  24  34  60  76  102  112  124  126  130  132  136
0  4  6  10  12  24  34  66  70  102  112  124  126  130  132  136
0  4  6  10  12  24  42  46  90  94  112  124  126  130  132  136
0  4  6  10  12  24  42  54  82  94  112  124  126  130  132  136
0  4  6  10  12  24  42  60  76  94  112  124  126  130  132  136
0  4  6  10  12  24  46  54  82  90  112  124  126  130  132  136
. . . . . . . . . . . . . . .
0  30  40  42  52  54  64  66  70  72  82  84  94  96  106  136
0  30  42  46  52  60  64  66  70  72  76  84  90  94  106  136
0  34  36  42  46  52  64  66  70  72  84  90  94  100  102  136
0  34  36  42  46  60  64  66  70  72  76  90  94  100  102  136
0  34  36  42  52  60  64  66  70  72  76  84  94  100  102  136
0  34  40  42  52  54  60  66  70  76  82  84  94  96  102  136
0  34  40  46  52  54  60  66  70  76  82  84  90  96  102  136
0  36  40  42  52  54  64  66  70  72  82  84  94  96  100  136
0  40  42  46  52  54  60  66  70  76  82  84  90  94  96  136

Вот это размах! Немудрено, что у меня даже и решения нашлись, хоть 4 штучки.
Теперь стало ещё более интересно, а сколько паттернов с таким диаметром дают пандиагональный квадрат :?:
Сейчас попробую вычислить :?

-- Пн сен 14, 2015 06:59:08 --

Программа-то выполнилась мгновенно, но... нет проверки на эквивалентность квадратов, поэтому полно одинаковых паттернов. В общем, сколько будет всего паттернов, дающих квадрат, точно не знаю, но много :-)
Показываю несколько первых (с ассоциативными квадратами Стенли паттерны показаны):
Код:
0  6  46  52
24  30  70  76
60  66  106  112
84  90  130  136

0  6  24  30  46  52  60  66  70  76  84  90  106  112  130  136

0  10  30  40
12  22  42  52
84  94  114  124
96  106  126  136

0  10  12  22  30  40  42  52  84  94  96  106  114  124  126  136

0  10  42  52
12  22  54  64
72  82  114  124
84  94  126  136

0  10  12  22  42  52  54  64  72  82  84  94  114  124  126  136

0  10  48  58
18  28  66  76
60  70  108  118
78  88  126  136

0  10  18  28  48  58  60  66  70  76  78  88  108  118  126  136

0  10  36  46
24  34  60  70
66  76  102  112
90  100  126  136

0  10  24  34  36  46  60  66  70  76  90  100  102  112  126  136

0  10  42  52
30  40  72  82
54  64  96  106
84  94  126  136

0  10  30  40  42  52  54  64  72  82  84  94  96  106  126  136

0  12  40  52
30  42  70  82
54  66  94  106
84  96  124  136

0  12  30  40  42  52  54  66  70  82  84  94  96  106  124  136
. . . . . . . . . . . .

Отличные потенциальные паттерны! Много разных вариантов, дающих квадраты, а не дающих вообще тьма.
Вот с этого диаметра я бы и начала искать, если бы умела искать КПППЧ по заданным паттернам.

-- Пн сен 14, 2015 07:10:56 --

Кстати, среди квадратов, найденных участниками проекта, нет ни одного из КПППЧ с диаметром 136.
Найденные квадраты:

maxal (минимальный)
Код:
170693941183817: 0 30 42 44 72 74 86 90 116 120 132 134 162 164 176 206

Dmitriy40
Код:
11796223202765101: 0 22 36 58 90 112 126 148 210 232 246 268 300 322 336 358
12548708437706431: 0 12 18 28 30 40 46 58 210 222 228 238 240 250 256 268
17537780902038437: 0 6 60 66 126 132 144 150 186 192 204 210 270 276 330 336
19171351137406219: 0 22 30 48 52 70 78 90 100 112 120 138 142 160 168 190

Begemot82
Код:
23323776496051501: 0 30 42 66 72 96 100 108 130 138 142 166 172 196 208 238
23653934725904299: 0 12 22 34 48 60 70 82 90 102 112 124 138 150 160 172

Ну, а если взять КПППЧ с диаметром 172 (с таким диаметром найден один квадратик), наверное, потенциальных паттернов будет ещё больше.

Одним словом, поле деятельности необъятное :-) Дерзайте, товарищи!

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение14.09.2015, 08:49 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Изображение

Хоть рядом с Мастером постоять, авось что-нибудь передастся :D

-- Пн сен 14, 2015 10:16:26 --

Nataly-Mak в сообщении #1053235 писал(а):
Ну, а если взять КПППЧ с диаметром 172 (с таким диаметром найден один квадратик), наверное, потенциальных паттернов будет ещё больше.

Дала программе задание - посчитать все потенциальные паттерны с диаметром 172 и вывести последний.
Программа выдаёт:
Код:
0  58  60  64  70  72  78  84  88  94  100  102  108  112  114  172
W= 58940

58940 потенциальных паттернов!!!
Наверняка будет куча паттернов, дающих квадрат. И будет огромная куча квадратов! И где они? :-(
Почему у нас их нет? Всего один-единственный квадратик как-то попался в наши сети.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение14.09.2015, 11:14 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Nataly-Mak в сообщении #1053229 писал(а):
Я попросила товарища добавить в программу поиск КПППЧ длин 12 - 15. Он это добавил в код программы, но у него нет компилятора. Попросила другого товарища скомпилировать. Жду.
Хочу хотя бы посмотреть на эти кортежи.

Ура! Спасибо другу-форумчанину за компиляцию.
Вижу КПППЧ длин 12 - 15 :roll:

Изображение

А скорость, посмотрите - какая скорость в этом интервале!
А КПППЧ нечётных длин снова упрямо обходятся. Как с ними всё непросто :-(

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение14.09.2015, 14:53 
Заслуженный участник


20/08/14
11057
Россия, Москва
Nataly-Mak в сообщении #1053235 писал(а):
Найденные квадраты:
Вы забыли последний найденный квадрат.

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

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



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

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


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

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