Минимальная мощность итерации из числа определяется следующим образом :
То есть повышается до самой низкой цифры в . Например, и .
Минимальный корень мощности из числа определяется как число , полученное от многократного применения , пока фиксированная точка не будет найдена. Вот таблица минимальных степенных корней чисел от 1 до 25:
n MPR(n)
--------------------------
1 1
2 1
3 531441
4 1
5 3125
6 4738381338321616896
7 1
8 16777216
9 1
10 1
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 1
21 21
22 1
23 279841
24 1
25 1
Задача: Генерация чисел, минимальный корень которых не равен 1 или самому себе.
Вот первые 50 чисел в этой последовательности:
3, 5, 6, 8, 23, 26, 27, 29, 35, 36, 39, 42, 47, 53, 59, 64, 72, 76, 78, 82, 83, 84, 92, 222, 223, 227, 228, 229, 233, 237, 239, 254, 263, 267, 268, 269, 273, 276, 277, 278, 279, 285, 286, 287, 289, 296, 335, 338, 339, 342
правила
- Вы можете сгенерировать первые
n
числа этой последовательности (с 0 или 1 индексом), сгенерироватьn
th-й член, создать генератор, который вычисляет эти слагаемые, выводить бесконечно много их и т. Д. - Вы можете взять ввод и дать вывод в любой базе, но вычисления для MPR должны быть в базе 10. Например, вы можете взять ввод
###
(в унарном виде) и вывод### ##### ######
(в унарном) - Вы должны дать цифры. Вы не можете (например) выводить
"3", "5", "6"
, так как это строки.3, 5, 6
и3 5 6
оба действительны, однако. Выведение2 3
,"23"
илиtwenty-three
все считаются недействительным представлением числа23
. (Опять же, вы можете использовать любую базу для представления этих чисел.) - Это код-гольф , поэтому выигрывает самый короткий код (в байтах).
Ответы:
05AB1E , 8 байтов
Генерирует n-ое число 1 -индексированное
Попробуйте онлайн!
объяснение
При желании в виде бесконечного списка при том же количестве байтов:
Попробуйте онлайн!
источник
µ
иΔ
сразу после того, как вопрос был опубликован, и получил точно такой же ответ, но мне было интересно, почему это не сработало ... Я использовал,D
а неÐ
потому, что думал, что одна копия будет использоваться функцией с фиксированной точкой и другой - функцией меньше, но я не учел, что мне нужна еще одна копия. Спасибо, Эминья, за решение моей Enimga.Perl 6 , 49 байт
Попробуйте онлайн!
Возвращает бесконечную последовательность. Я предполагаю, что следующая 45-байтовая версия тоже работает, но я не могу доказать, что фиксированная точка всегда находится после n итераций.
источник
J ,
413937 байтПопробуйте онлайн!
Это полная программа печати бесконечной последовательности. Очень редкий случай, когда полная программа бьет глагол в J.
Как это работает
J ,
4139 байтПопробуйте онлайн!
Монадический глагол. С учетом индекса на основе 1 возвращает число по этому индексу. Нижний колонтитул проверяет правильность первых 20 терминов.
Читая слово «fixpoint», я сразу подумал: «О да, отлично справлюсь»
^:_
. Тогда я закончил с этой мерзостью сердитых и грустных лиц. И это даже не поезд, это единственный глагол .Ungolfed & Как это работает
Целое число произвольной точности
0x
необходимо для точного вычисления точки фиксации, например, числа 6.источник
^:
, у меня начинает болеть голова от второго из них :)(>:[(<(^{.@/:~&.":)^:_)echo])^:_]1x
_&(_&(]]+]>:(^{.@/:~&.":)^:_)>:)*
принимать входные данные как расширенное целое числоPyth , 10 байт
Попробуйте онлайн!
GZZQ
.f
Q
u^GshS`G
Z
Корневой код минимальной мощности работает, находя фиксированную точку
u
возведения текущего числаG
в степень его минимальной цифры, которая совпадает с первой цифрой (h
), отсортированной лексикографически (S
), а затем преобразованной обратно в целое число (s
).источник
Желе , 10 байт
Монадическая ссылка
I
, получающая целое число из STDIN, которое возвращает первыеI
записи.Попробуйте онлайн!
(
*DṂƊƬṪ%@µ#
работает на 10 тоже)Как?
Считает, что запускает
n=0
доinput
тех пор, пока не встретятся истинные результаты монадической функции и выдаст теn
s.Функция многократно применяет другую монадическую функцию, начиная с,
x=n
и собирает значенияx
до тех пор, пока результаты не станут уникальными. (например:19
yields[19]
;23
yields[23,529,279841]
;24
yields[24, 576, 63403380965376, 1]
; etc ...), а затем удаляет результат из результата (удаляет крайнее левое значение), дополняет все значения (1-x
) и используетȦ
для получения результата,0
когда в списке есть ноль или он пуст.Самая внутренняя функция повышает ток
x
до всех цифр,x
а затем сохраняет минимум (выполнение этого - сохранение байта вместо поиска минимальной цифры сначала).источник
ƬḊCȦ
там. :-)Ṫ>
поднимает0
:(Mathematica,
5951 байт-8 байт благодаря Мише Лаврову .
Чистая функция. Принимает число в качестве ввода и возвращает список терминов до этого числа в качестве вывода. Здесь нет ничего сложного.
источник
FixedPoint
обычно не так хорош, как//.
(сокращенноReplaceRepeated
) в коде гольф. Здесь мы можем сохранить несколько байтов с помощьюSelect[Range@#,1<(#//.x_:>x^Min@IntegerDigits@x)!=#&]&
.Select[Range@#,#<(#//.x_:>x^Min@IntegerDigits@x)&]&
.Python 3 ,
9088 байт-2 байта @mypetlion
Попробуйте онлайн!
print
поскольку выражение сохраняет два байта по сравнению сif
оператором в Python 2.F
вычисляет точку фиксации MPI; остальное дает бесконечную последовательность STDOUT.источник
return m>x and F(m)or m
чтобыreturn[int,F][m>x](m)
сохранить 2 байта.Haskell,
6762 байтаВозвращает бесконечный список.
Попробуйте онлайн!
источник
Рубин , 52 байта
Попробуйте онлайн!
Печатает бесконечную последовательность
источник
$.
вместоx
, сохраняет инициализацию)Java 10,
178173 байтаПорт ответа @GB на Ruby , поэтому печатает бесконечно.
Попробуйте онлайн.
Объяснение:
источник
JavaScript (Node.js) , 75 байт
ВозвращаетN 1- й член, 1-индексированный.
Попробуйте онлайн!
источник
JavaScript (Node.js) ,
98908986 байт-3 байта спасибо @ Конор О'Брайен
Попробуйте онлайн!
Используя тот факт, чтоMпR ( n ) > n если MпR ( n ) ∉ { 1 , n }
Кажется, что генератор короче, чем возвращает массив
n
чисел?Или печатать бесконечно - 72 байта
Попробуйте онлайн!
источник
if(x>n)yield n
вx>n&&(yield n)
качестве выражения)Желе , 14 байт
Попробуйте онлайн!
источник
JavaScript (Chrome),
7877 байтПопробуйте онлайн!
Порт моего собственного решения Python 3 . Поддерживает последнюю версию Chrome
BigInt
(протестировано на моем ПК). Не пытайтесь использовать этот код как есть в вашем браузере.источник
Ракетка ,
270, 257233 байтаПопробуйте онлайн!
Это моя первая ракетка представление, так что это, безусловно , может быть golfed гораздо дальше. Тем не менее, я доволен, по крайней мере, тем, что сумел решить задачу.
Более читабельно:
источник
Аксиома, 168 байт
Функция для использования это z (); здесь он печатает числа, имеющие соответствие одному числу, а не 1, а не самому себе и меньше его аргумента.
источник
Visual Basic .NET (.NET Core) , 290 байт (включает импорт)
Попробуйте онлайн!
Требуется следующий импорт:
При этом используется функция итератора, которая возвращает бесконечный (загруженный ленивый) список целых чисел, который соответствует критериям. Использует,
BigInteger
чтобы избежать каких-либо ограничений по размеру, особенно при промежуточных вычислениях.Un-golfed:
источник
Common Lisp , 238 байт
Попробуйте онлайн!
источник
APL (NARS), 96 символов, 192 байта
тест (частичный результат для аргумента 22 кажется намного большим, поэтому <21 аргументов, я не знаю, может ли быть в порядке)
источник
Python 3 , 102 байта
Попробуйте онлайн!
Решил попробовать решение Python 3, которое напрямую печатает n-й член в последовательности.
источник
C (лязг) +
-DL=long long
-lm
, 213 байтовПопробуйте онлайн!
Функция
g(j)
печатает первыеj
члены последовательности.источник
a=...
чтобы сохранить дюжину или около того байтов.x>1
вместоx!=1&x>0
.Шелуха ,
161210 байтСохранено 6 байт благодаря H.PWiz.
Попробуйте онлайн!
объяснение
источник
>¹
здесь сS>
. Это позволяет поместить все это в одну строку. Кроме того, похоже, что вы по ошибке оставили в предыдущей ссылке tioJapt , 44 байта
Попробуйте онлайн!
Существенно отличается от другого ответа Япта.
Объяснение:
Что касается будущих возможностей игры в гольф, я много вручную вызываю функцию для числа, которое, я подозреваю, может быть уменьшено, но я не уверен, как.
источник