The kekuatan iterasi minimal dari sejumlah didefinisikan sebagai berikut:
Yaitu, dinaikkan ke digit terendah dalam . Misalnya, dan .
The akar daya minimal dari nomor didefinisikan sebagai jumlah yang diperoleh dari berulang kali menerapkan sampai titik tetap ditemukan. Berikut adalah tabel dari akar minimal angka antara 1 dan 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
Tantangan: Menghasilkan angka-angka yang root daya minimalnya tidak sama dengan 1 atau dirinya sendiri.
Berikut adalah 50 angka pertama dalam urutan ini:
3, 5, 6, 8, 23, 26, 27, 29, 35, 36, 39, 42, 47, 53, 59, 64, 72, 76, 78, 82, 83, 84, 92, 222, 222, 223, 227, 228, 229, 233, 237, 237, 254, 263, 267, 268, 269, 273, 276, 277, 278, 279, 285, 286, 287, 289, 299, 296, 335, 338, 339, 342
Aturan
- Anda dapat menghasilkan
n
angka pertama dari urutan ini (0 atau 1-diindeks), menghasilkann
istilah th, membuat generator yang menghitung istilah-istilah ini, output banyak dari mereka, dll. - Anda dapat mengambil input dan memberikan output di pangkalan apa pun, tetapi perhitungan untuk MPR harus di pangkalan 10. Misalnya, Anda dapat mengambil input
###
(di unary) dan output### ##### ######
(di unary) - Anda harus menghasilkan angka. Anda mungkin tidak (misalnya) mengeluarkan
"3", "5", "6"
, karena itu adalah string.3, 5, 6
dan3 5 6
keduanya valid. Mengeluarkan2 3
,,"23"
atautwenty-three
semuanya dianggap sebagai representasi tidak valid dari nomor tersebut23
. (Sekali lagi, Anda dapat menggunakan basis apa pun untuk mewakili angka-angka ini.) - Ini adalah kode-golf , jadi kode terpendek (dalam byte) menang.
Jawaban:
05AB1E , 8 byte
Menghasilkan nomor ke- 1 yang diindeks
Cobalah online!
Penjelasan
Opsional sebagai daftar tak terbatas pada jumlah byte yang sama:
Cobalah online!
sumber
µ
danΔ
tepat setelah tantangan diposting dan mendapatkan jawaban yang sama persis, tapi saya bertanya-tanya mengapa itu tidak berhasil ... Saya menggunakanD
daripadaÐ
karena saya pikir satu salinan akan digunakan oleh fungsi titik tetap dan yang lain dengan fungsi yang lebih kecil, tetapi saya tidak memperhitungkan bahwa saya membutuhkan salinan lain. Terima kasih, Emigna, untuk memecahkan Enimga saya.Perl 6 , 49 byte
Cobalah online!
Mengembalikan urutan yang tak terbatas. Saya kira versi 45 byte berikut juga berfungsi, tetapi saya tidak dapat membuktikan bahwa titik tetap selalu ditemukan setelah iterasi.
sumber
J ,
413937 byteCobalah online!
Yang ini adalah program lengkap mencetak urutan yang tak terbatas. Suatu kesempatan yang sangat langka di mana sebuah program lengkap mengalahkan kata kerja dalam J.
Bagaimana itu bekerja
J ,
4139 byteCobalah online!
Kata kerja monadik. Diberikan indeks berbasis 1, mengembalikan angka pada indeks itu. Catatan kaki memeriksa bahwa 20 istilah pertama sudah benar.
Membaca kata "fixpoint", saya langsung berpikir, "Oh ya,
^:_
akan melakukan pekerjaan yang hebat." Kemudian saya berakhir dengan kekejian pada wajah-wajah yang marah dan sedih ini. Dan itu bahkan bukan kereta, itu kata kerja tunggal .Tidak Digubah & Cara kerjanya
Integer presisi arbitrer
0x
diperlukan untuk menghitung fixpoint secara akurat, misalnya dari angka 6.sumber
^:
, kepala saya mulai sakit pada yang kedua dari mereka :)(>:[(<(^{.@/:~&.":)^:_)echo])^:_]1x
_&(_&(]]+]>:(^{.@/:~&.":)^:_)>:)*
mengambil input sebagai bilangan bulat yang diperluasPyth , 10 byte
Cobalah online!
GZZQ
.f
Q
u^GshS`G
Z
Kode root daya minimal berfungsi dengan menemukan titik tetap
u
untuk meningkatkan angka saat iniG
ke kekuatan digit minimalnya, yang sama dengan digit pertama (h
) diurutkan secara leksikografis (S
), kemudian dikonversi kembali ke integer (s
).sumber
Jelly , 10 byte
Tautan monadik yang mengambil bilangan bulat
I
,, dari STDIN yang menghasilkanI
entri pertama .Cobalah online!
(
*DṂƊƬṪ%@µ#
bekerja untuk 10 juga)Bagaimana?
Menghitung mulai
n=0
sampaiinput
hasil kebenaran dari fungsi monadik ditemukan dan menghasilkann
itu.Fungsi berulang kali menerapkan fungsi monadik lain yang dimulai dengan
x=n
dan mengumpulkan nilaix
hingga hasilnya tidak lagi unik. (misalnya:19
hasil[19]
; hasil ;23
hasil[23,529,279841]
;24
hasil[24, 576, 63403380965376, 1]
; dll ...) dan kemudian dequeues hasilnya (menghilangkan nilai paling kiri), melengkapi semua nilai (1-x
) dan menggunakanȦ
untuk menghasilkan0
ketika ada nol dalam daftar atau jika kosong.Fungsi terdalam meningkatkan arus
x
ke semua digitx
dan kemudian menjaga minimum (melakukan ini adalah byte menyimpan lebih dari menemukan digit minimum terlebih dahulu).sumber
ƬḊCȦ
di sana. :-)Ṫ>
mengambil0
:(Mathematica,
5951 byte-8 Bytes berkat Misha Lavrov .
Fungsi murni. Mengambil nomor sebagai input, dan mengembalikan daftar istilah hingga nomor tersebut sebagai output. Tidak ada yang rumit di sini.
sumber
FixedPoint
biasanya tidak sebagus//.
(kependekanReplaceRepeated
) dalam kode golf. Di sini, kami dapat menyimpan beberapa byte denganSelect[Range@#,1<(#//.x_:>x^Min@IntegerDigits@x)!=#&]&
.Select[Range@#,#<(#//.x_:>x^Min@IntegerDigits@x)&]&
.Python 3 ,
9088 byte-2 bytes oleh @mypetlion
Cobalah online!
print
sebagai ekspresi menyimpan dua byte daripada menggunakanif
pernyataan dalam Python 2.F
menghitung fixpoint MPI; sisanya memberikan urutan tak terbatas ke STDOUT.sumber
return m>x and F(m)or m
kereturn[int,F][m>x](m)
untuk menyimpan 2 byte.Haskell,
6762 byteMengembalikan daftar yang tak terbatas.
Cobalah online!
sumber
Ruby , 52 byte
Cobalah online!
Mencetak urutan tanpa batas
sumber
$.
bukanx
, menghemat inisialisasi)Java 10,
178173 bytePort jawaban Ruby @GB , juga dicetak tanpa batas.
Cobalah online.
Penjelasan:
sumber
JavaScript (Node.js) , 75 byte
Cobalah online!
sumber
JavaScript (Node.js) ,
98908986 byte-3 byte terima kasih @Conor O'Brien
Cobalah online!
Menggunakan fakta bahwaM.PR ( n ) > n jika M.PR ( n ) ∉ { 1 , n }
Tampaknya generator lebih pendek daripada mengembalikan array
n
angka?Atau mencetak tanpa batas - 72 byte
Cobalah online!
sumber
if(x>n)yield n
untukx>n&&(yield n)
sebagai ekspresi)Jelly , 14 byte
Cobalah online!
sumber
JavaScript (Chrome),
7877 byteCobalah online!
Port solusi Python 3 saya sendiri . Versi terbaru dari dukungan Chrome
BigInt
(diuji pada PC saya). Jangan coba kode ini apa adanya di browser Anda.sumber
Racket ,
270, 257233 byteCobalah online!
Ini adalah raket pertamaku pengiriman , jadi pasti bisa bermain golf lebih jauh. Namun demikian saya agak puas, setidaknya untuk mengelola menyelesaikan tugas.
Lebih mudah dibaca:
sumber
Aksioma, 168 byte
Fungsi untuk menggunakannya adalah z (); di sini ia mencetak angka-angka yang memiliki nomor satu korrisponden bukan 1, tidak sendiri dan kurang dari argumennya.
sumber
Visual Basic .NET (.NET Core) , 290 byte (termasuk impor)
Cobalah online!
Membutuhkan impor berikut:
Ini menggunakan fungsi iterator untuk mengembalikan daftar bilangan bulat tak terbatas (dimuat malas) yang memenuhi kriteria. Penggunaan
BigInteger
untuk menghindari batasan ukuran, khususnya dengan perhitungan menengah.Tidak golf:
sumber
Common Lisp , 238 byte
Cobalah online!
sumber
APL (NARS), 96 karakter, 192 byte
tes (hasil parsial untuk argumen 22 tampaknya jauh lebih besar sehingga <21 argumen saya tidak tahu apakah boleh ok)
sumber
Python 3 , 102 byte
Cobalah online!
Memutuskan untuk mencoba solusi Python 3 yang secara langsung mencetak istilah ke-n dalam urutan.
sumber
C (dentang) +
-DL=long long
-lm
, 213 byteCobalah online!
Fungsi
g(j)
mencetakj
istilah pertama dari urutan.sumber
a=...
menyimpan selusin byte.x>1
bukannyax!=1&x>0
.Sekam ,
161210 byteDisimpan 6 byte berkat H.PWiz.
Cobalah online!
Penjelasan
sumber
>¹
sini denganS>
. Ini memungkinkan Anda untuk meletakkan semuanya dalam satu baris. Juga, tampaknya Anda keliru meninggalkan tautan tio sebelumnyaJapt , 44 byte
Cobalah online!
Secara substansial berbeda dari jawaban Japt lainnya.
Penjelasan:
Dalam hal kemungkinan bermain golf di masa depan, saya melakukan banyak hal secara manual memanggil fungsi pada nomor, yang saya duga dapat dikurangi tetapi saya tidak yakin bagaimana caranya.
sumber