Підсумок: перевірити, чи "допустима" вхідна послідовність цілих чисел, це означає, що вона не охоплює всіх класів залишків для будь-якого модуля.
Що таке "допустима" послідовність?
З огляду на ціле число m ≥ 2, класи залишків за модулем m є лише можливими арифметичними прогресіями загальної різниці m. Наприклад, коли m = 4, 4 класи залишків за модулем 4 є
..., -8, -4, 0, 4, 8, 12, ...
..., -7, -3, 1, 5, 9, 13, ...
..., -6, -2, 2, 6, 10, 14, ...
..., -5, -1, 3, 7, 11, 15, ...
Клас залишку kth складається з усіх цілих чисел, залишок яких при діленні на m дорівнює k. (доки правильно визначається "залишок" для від'ємних цілих чисел)
Послідовність цілих чисел a1, a2, ..., ak допустима за модулем m, якщо вона не перетинає хоча б один із класів залишків. Наприклад, {0, 1, 2, 3} і {-4, 5, 14, 23} є НЕ допустимими по модулю 4, а {0, 1, 2, 4} і {0, 1, 5, 9} і {0, 1, 2, -3} є допустимими по модулю 4. Крім того , {0, 1, 2, 3, 4} є НЕ допустимим по модулю 4, а {0, 1, 2} є допустимим по модулю 4.
Нарешті, послідовність цілих чисел просто допустима, якщо допустима модуль m для кожного цілого числа m ≥ 2.
Змагання
Напишіть програму або функцію, яка приймає послідовність цілих чисел як вхідних даних і повертає (послідовне) значення Truthy, якщо послідовність допустима, і (послідовне) значення Falsy, якщо послідовність неприпустима.
Послідовність введення цілих чисел може бути у будь-якому розумному форматі. Можна припустити, що послідовність введення містить щонайменше два цілих числа. (Ви також можете припустити, що цілі вхідні дані є різними, якщо ви хочете, хоча це, мабуть, не допомагає.) Ви повинні вміти обробляти додатні та від’ємні цілі числа (і 0).
Звичайне підрахунок коду-гольфу : виграє найкоротша відповідь у байтах.
Зразок введення
Наступні вхідні послідовності повинні давати значення Truthy:
0 2
-1 1
-100 -200
0 2 6
0 2 6 8
0 2 6 8 12
0 4 6 10 12
-60 0 60 120 180
0 2 6 8 12 26
11 13 17 19 23 29 31
-11 -13 -17 -19 -23 -29 -31
Наступні вхідні послідовності повинні давати значення Falsy:
0 1
-1 4
-100 -201
0 2 4
0 2 6 10
0 2 6 8 14
7 11 13 17 19 23 29
-60 0 60 120 180 240 300
Поради
- Зауважимо, що будь-яка послідовність із 3 чи менших цілих чисел автоматично допустима за модулем 4. Більш загально, послідовність довжини k автоматично допустима за модулем m, коли m> k. Звідси випливає, що перевірка допустимості дійсно вимагає лише перевірки кінцевої кількості m.
- Зауважимо також, що 2 ділить 4, і що будь-яка послідовність, яка є допустимою за модулем 2 (тобто, парне або все непарне), є автоматично допустимим модулем 4. Більш загально, якщо m ділить n і послідовність є допустимою модулем m, то це автоматично допустимий модуль n. Щоб перевірити прийнятність, тому достатньо врахувати лише головне, якщо бажаєте.
- Якщо a1, a2, ..., ak - допустима послідовність, тоді a1 + c, a2 + c, ..., ak + c також допустима для будь-якого цілого числа c (додатного або від'ємного).
Математична відповідність (необов'язкове читання)
Нехай a1, a2, ..., ak - послідовність цілих чисел. Припустимо, що існує нескінченно багато цілих чисел n таких, що n + a1, n + a2, ..., n + ak всі просто. Тоді легко показати, що a1, a2, ..., ak повинні бути допустимими. Справді, припустимо, що a1, a2, ..., ak неприпустимо, і нехай m є числом таким, що a1, a2, ..., ak неприпустимо за модулем m. Тоді незалежно від того, яке n ми обираємо, одне з чисел n + a1, n + a2, ..., n + ak повинно бути кратним m, отже, не може бути простим.
Прем'єр к-кортежі гіпотеза є зворотним твердженням, яке до сих пір широко відкритою проблема в теорії чисел: він стверджує , що якщо а1, а2, ..., ак допустимої послідовність (або до-кортеж ), тобто повинно бути нескінченно багато цілих чисел n таких, що n + a1, n + a2, ..., n + ak є простими. Наприклад, допустима послідовність 0, 2 дає твердження, що повинно бути нескінченно багато цілих чисел n таких, щоб і n, і n + 2 були простими, це гіпотеза про близнюки-блискавки (досі не підтверджені).
-60 0 60 120 180 240 300
перетинає кожен клас залишків за модулем 7, тому це недопустимо.
[_60:0:60:120:180]
дарує мені правду; на самому ділі це не перетинаються принаймні один клас в кожномуm
з2
до5
включно; крім того, вона перетинає тільки один клас в кожномуm
з2
до5
включно.