Saya datang dengan serangkaian nomor hari yang lain dan memutuskan untuk memeriksa apa nomor OEIS itu. Betapa terkejutnya saya, urutannya tampaknya tidak ada dalam database OEIS, jadi saya memutuskan untuk memberi nama urutannya sendiri (perhatikan bahwa orang lain yang jauh lebih pintar dari saya mungkin telah menemukan ini, dan jika seseorang menemukan nama sebenarnya dari urutan ini, beri komentar dan saya akan mengubah judul pertanyaan). Karena saya tidak dapat menemukan urutan di mana pun, saya memutuskan untuk menamainya sendiri, maka "Gryphon Numbers". EDIT: Terima kasih kepada @Surb karena telah memperhatikan fakta bahwa urutan ini sama dengan urutan OEIS A053696 - 1.
Angka Gryphon adalah angka dari bentuk , di mana dan adalah bilangan bulat lebih besar dari atau sama dengan dua, dan urutan Gryphon adalah himpunan semua angka Gryphon dalam urutan menaik. Jika ada beberapa cara untuk membentuk nomor Gryphon (contoh pertama adalah , yang keduanya dan ) jumlahnya hanya dihitung satu kali dalam urutan. Beberapa angka Gryphon pertama adalah: .
Tugas Anda:
Tulis program atau fungsi yang menerima bilangan bulat sebagai input dan menampilkan nomor Gryphon ke- .
Memasukkan:
Integer antara 0 dan 10.000 (inklusif). Anda dapat memperlakukan urutan sebagai 0-diindeks atau 1-diindeks, mana yang Anda inginkan. Harap sebutkan sistem pengindeksan yang Anda gunakan dalam jawaban Anda untuk menghindari kebingungan.
Keluaran:
Nomor Gryphon sesuai dengan input.
Kasus uji:
Harap dicatat bahwa ini mengasumsikan urutan diindeks 0. Jika program Anda mengasumsikan urutan 1-diindeks, jangan lupa untuk menambah semua angka input.
Input: Output:
0 ---> 6
3 ---> 20
4 ---> 30
10 ---> 84
99 ---> 4692
9999 --> 87525380
Mencetak:
Ini adalah kode-golf , sehingga skor terendah dalam byte menang.
Jawaban:
Jelly , 9 byte
Program lengkap yang membaca integer (1-diindeks) dari STDIN dan mencetak hasilnya.
Cobalah online!
Bagaimana?
Angka Gryphon adalah angka yang dapat diekspresikan dalam basis kurang dari itu sendiri sehingga semua digit adalah yang kecuali yang paling tidak signifikan, yaitu nol. Sebagai contoh:
Program ini mengambil
n
, kemudian mulaiv=0
dan menguji untuk properti ini dan kenaikanv
sampai menemukann
angka-angka seperti itu, kemudian mengeluarkan yang terakhir.b
v
b
v
sumber
MATL ,
1613 byteBerbasis 1.
Cobalah online!
Penjelasan
Pertimbangkan input
n = 3
sebagai contoh.Matriks yang diperoleh pada langkah (*) berisi angka Gryphon yang mungkin diulang. Secara khusus, ini berisi
n
nomor Gryphon yang berbeda di baris pertama. Ini belum tentun
angka Gryphon terkecil. Namun, entri kiri bawah2+2^+···+2^n
melebihi entri kanan atasn+n^2
, dan dengan demikian semua angka di baris terakhir melebihi yang ada di baris pertama. Ini menyiratkan bahwa memperluas matriks ke kanan atau ke bawah tidak akan menyumbang angka Gryphon yang lebih rendah darin
angka terendah dalam matriks. Oleh karena itu, matriks dijamin mengandungn
angka Gryphon terkecil. Akibatnya,n
elemen unik terendah ke -nya adalah solusinya.sumber
Haskell , 53 byte
Cobalah online!
Kami membuat daftar semua yang tidak terbatas dari semua sehingga pencarian dengan kekerasan menunjukkan hal ini.n≥6
Jawabannya adalah fungsi indeks (tanpa indeks) ke dalam daftar ini, dilambangkan dalam Haskell as
(list!!)
.Mengapa itu
a^y+n==n*a+a
benar?Dari rumus untuk menjumlahkan perkembangan geometrik :
yang kita miliki, membiarkan :(α,ρ,ν)=(a,a,x) n=∑i=1xai=a(1−ax)1−a=a−ax+11−a.
Mengatur ulang persamaan, kita mendapatkan .n(1−a)=a−ax+1
Menyusun ulang itu lebih jauh, kita mendapatkan .ax+1+n=na+a
Substitusi dalam pencarian brute-force menghasilkan ekspresi akhir .y=x+1
a^y+n=n*a+a
Apakah mencari sampai
n
cukup?Jika (dengan kata lain, ), maka yang membuktikan . Jadi tidak masuk akal memeriksa salah satu nilai .a>n a≥n+1 ay+n>a2≥(n+1)a=na+a ay+n≠na+a a>n
Demikian pula: jika , maka sekali lagi membuktikan .y>n ay+n>an=an−1a≥2n−1a>∗(n+1)a=na+a, ay+n≠na+a
sumber
Python 3.8 (Pra-rilis) ,
9892897871 byteCobalah online!
Diindeks 0. Divisi integer harus digunakan di sini karena f (10000) meluap mengapung.
Menghasilkan semua angka Gryphon di mana dan , mengurutkannya, dan memilih elemen ke- .2≤a≤n+2 2≤x≤n+2 n
-6 byte terima kasih kepada Jonathan Allan
-3 byte terima kasih kepada ArBo. Saya hampir melakukan apa yang disarankannya sendiri, tetapi mencoba menggunakan
{*(...)}
yang tidak menghemat ruang-11 byte berkat mathmandan
-7 byte terima kasih kepada ArBo
Bukti Matematika tentang Validitas
Menggunakan pengindeksan-demi bukti ini, meskipun konvensi matematika 1-diindeks.
sumber
f=
tidak perlu, danlambda n,r=range:
akan menghemat 4 lebih banyak ( seperti itu )set()
dan menggantinya dengan satu set pemahaman untuk mencapai 89f=
dari TIO dengan meletakkannya di header, seperti pada TIO dari 89-byter sayaJ ,
3532 byte-3 byte terima kasih kepada FrownyFrog
Cobalah online!
Penjelasannya sama seperti aslinya. Cukup gunakan formulir eksplisit untuk menyimpan byte menjadi menghapus beberapa
@
.jawaban asli, diam-diam, dengan penjelasan: 35 byte
Cobalah online!
Mirip dengan pendekatan Luis Mendo, kami membuat "tabel kekuatan" (seperti tabel waktu) dengan baris atas
2 3 ... n
dan kolom kiri1 2 ... n
menghasilkan:^~/ >:
membuat tabel, dan1+i.@+&2
membuat1... n
urutan, dan kami menambahkan 2 (+&2
) ke input untuk memastikan kami selalu memiliki cukup elemen untuk membuat tabel bahkan untuk 0 atau 1 input.Setelah kita memiliki tabel di atas solusinya sepele. Kami hanya memindai jumlah baris
+/\
, dan kemudian menghapus baris pertama, ratakan, ambil unik, dan urutkan/:~@~.@,@}.
. Akhirnya{
menggunakan input asli untuk mengindeks ke dalam hasil itu, menghasilkan jawaban.sumber
Gaia , 18 byte
Cobalah online!
Indeks berbasis 1.
Ini adalah jawaban yang agak menyedihkan dengan hidung panjang:
)┅:
Mungkin berharap itu bisa diturunkan lebih jauh.Menyalin algoritma yang diberikan oleh jawaban Luis Mendo
sumber
R ,
6562 byte-1 byte terima kasih kepada Giuseppe.
Cobalah online!
1-diindeks.
Menghasilkan matriks dari semua nilai dari bentuk , mengambil jumlah kumulatif, menghapus baris pertama (0s) dan baris kedua (entri yang sesuai dengan ), kemudian mengambil nilai yang diurutkan unik.ai x=1
Perhatikan bahwa
sort(unique(...))
tidak akan berfungsi, karenaunique
akan memberikan baris unik dari matriks, dan bukan entri unik. Menggunakanunique(sort(...))
karya karenasort
dikonversi ke vektor.sumber
t
dandiffinv
adalah 64 bytediffinv
. Saya golf 2 byte lagi dengan mengganti[-1:-2,]
dengan[3:n,]
.JavaScript (ES7), 76 byte
1-diindeks.
Cobalah online!
JavaScript (ES7), 89 byte
1-diindeks.
Cobalah online!
sumber
Bahasa Wolfram (Mathematica) , 51 byte
Cobalah online!
1-diindeks
-8 byte dari @attinat
sumber
Arang , 36 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. 1-diindeks. Menggunakan algoritma Luis Mendo. Penjelasan:
Masukan .n
Buat -by- grid nomor Gryphon dan mendorong masing-masing untuk daftar yang telah ditetapkan.n n
Hitung angka Gryphon menggunakan fakta bahwa .∑x1ai=ax+1−aa−1
Hapus angka Gryphon terendah .n−1
Cetak angka Gryphon yang tersisa terendah.
sumber
Japt , 23 byte
Yebus sayang! Entah saya benar - benar lupa bagaimana golf atau minuman keras akhirnya mengambil korban!
Bukan port langsung solusi Jonathan tetapi sangat terinspirasi oleh pengamatannya.
Cobalah
sumber
05AB1E , 12 byte
Diindeks 0
Cobalah online atau verifikasi item pertaman .
Penjelasan:
sumber