Учитывая неотрицательное целое число n >= 0
, выведите навсегда последовательность целых чисел, x_i >= 3
которые являются палиндромами в совершенно n
разных основаниях b
, где может быть основание 2 <= b <= x_i-2
.
Это, в основном, инверсия OEIS A126071 , где вы выводите , какие индексы в этой последовательности имеют значение n
. Это немного отличается, потому что я изменил его, чтобы вы игнорировали базы b = x_i-1, x_i, x_i+1
, поскольку результаты для этих баз всегда одинаковы (значения всегда палиндромы или всегда нет). Кроме того, смещение отличается.
x_i
ограничивается чисел >= 3
так , что первый член результата для каждого n
является A037183 .
Обратите внимание, что формат вывода является гибким, но числа должны быть хорошо разделены.
Примеры:
n seq
0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ...
1 5 7 8 9 12 13 14 22 23 25 29 35 37 39 41 43 49 ...
2 10 15 16 17 18 20 27 30 31 32 33 34 38 44 ...
3 21 24 26 28 42 45 46 50 51 54 55 56 57 64 66 68 70 ...
4 36 40 48 52 63 65 85 88 90 92 98 121 128 132 136 138 ...
5 60 72 78 84 96 104 105 108 112 114 135 140 156 162 164 ...
10 252 400 420 432 510 546 600 648 784 800 810 816 819 828 858 882 910 912 1040 1056 ...
Таким образом n=0
, вы получаете результат этой задачи (начиная с 3
), потому что вы получаете числа, которые являются палиндромами в n=0
базах.
Ибо n=1
, 5
это палиндром в основании 2
, и это единственная основа 2 <= b <= (5-2)
, в которой находится палиндром. 7
Это палиндром в основании 2
, и это единственная база 2 <= b <= (7-2)
, в которой находится палиндром. И т.д.
Если ваш язык не поддерживает бесконечный вывод, вы можете взять другое целое число в z
качестве входных данных и вывести первые z
элементы последовательности или все элементы меньше, чем z
. Что бы вы ни предпочли. Пожалуйста, укажите, что вы использовали в своем ответе, если это так.
источник
n
баз, а не вn
нескольких базах?n
является набором целых чисел>=3
.Ответы:
Желе , 18 байт
Попробуйте онлайн! - онлайн-интерпретатор отключится через 60 секунд, а затем сбросит свои выходные данные (если у него нет кэшированной копии), в автономном режиме он будет печатать каждую по очереди.
Как?
Оценивает числа
n
вверх, печатая их, если они в последовательности. Обратите внимание, что первое число в любом выводе будет больше, чем,n
поскольку в противном случае диапазонb
не достаточно велик, поэтому нет необходимости начинать процесс с3
. Также обратите внимание, что число палиндромов от основания 2 до x i -2 включительно всего на два меньше, чем количество палиндромов от основания 1 до x .источник
Mathematica,
8071 байтСпасибо JungHwan Min за сохранение 9 байтов!
(
∞
является трехбайтовым символом U + 221E.) Чистая функция, принимающая неотрицательное целое число в качестве входных данных.i~IntegerReverse~Range[2,i-2]
создает список обращений числаi
во всех базах от2
доi-2
; затемLength[...~Cases~i]
считает, сколько из этих обращенийi
снова равно .#!=...||Echo@i
молча останавливается, если это число не равно входу, и выводит эхо,i
если оно равно входу. Эта процедура встроена в простой бесконечный цикл.источник
Echo@i
Термин не вычисляется , если первый аргументTrue
. Могу ли я добавить это в Советы по игре в гольф в Mathematica ?Do[...,{i,3,∞}]
короче(i=2;While[1>0,... ++i ...])
, иCases
будет работать вместоPosition
. -9 байт:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
Cases
отлично работает вместоPosition
. Но я проверилDo
конструкцию, и она не работает для меня, но я понятия не имею, почему нет. По некоторым причинам, он не включаетi
значения - я получаю такие ошибки, как"Range specification in Range[2,-2+i] does not have appropriate bounds."
. (И вставкаPrint[i];
проверяет, чтоi
не присваиваются значения.) Есть идеи?,
и{
(вероятно, что-то связанное с системой SE). Это нарушает код, потому что символы считаются переменными. Я надеюсь, что это не имеет:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
EDIT: все еще есть. Вот ссылка дляPyth,
211918 байтЭто должно работать в теории. Это работает правильно, если я заменяю бесконечный цикл на любой конечный (например,
JQFbr3 50*`bqJlf_IjbTr2tb
от 3 до 50, попробуйте здесь ), но интерпретатор Pyth не знает, когда или как печатать буквально бесконечный вывод.Объяснение:
источник
Perl 6 , 90 байт
Попробуй это
источник
Утилиты Bash + Unix,
134132 байтаПопробуйте онлайн!
Ввод передается в качестве аргумента. Выход на стандартный вывод.
Если вы запустите это нормально, он будет отображать одно число за раз в бесконечной последовательности.
Если вы попробуете это в TIO, он отобразит столько же выходных данных, сколько сгенерировал, когда истечет 60 секунд.
источник
Python 2, 132 байта
Попробуйте онлайн
В программу TIO добавлен нижний колонтитул, поэтому вам не нужно ждать 1 минуту, пока программа не остановится, прежде чем увидеть результат.
источник