Pada 13/03/2018 16:45 UTC, pemenangnya adalah jawaban # 345 , oleh Scrooble . Ini berarti kontes telah berakhir secara resmi, tetapi jangan ragu untuk terus memposting jawaban, asalkan mereka mengikuti aturan.
Juga, cukup teriakan cepat ke tiga penjawab teratas dalam hal jumlah jawaban:
1. NieDzejkob - 41 jawaban
2. KSmarts - 30 jawaban
3. Hyper Neutrino - 26 jawaban
Ini adalah pertanyaan chaining jawaban yang menggunakan urutan dari OEIS, dan panjang pengiriman sebelumnya.
Pertanyaan chaining jawaban ini akan bekerja dengan cara berikut:
- Saya akan memposting jawaban pertama. Semua solusi lain harus berasal dari itu.
- Pengguna berikutnya (sebut saja mereka userA) akan menemukan urutan OEIS di mana nomor indeksnya (lihat di bawah) sama dengan panjang kode saya.
- Dengan menggunakan urutan, mereka kemudian harus kode, dalam bahasa yang tidak digunakan , program yang mengambil integer sebagai input, n, dan menampilkan nomor ke-n dalam urutan itu.
- Selanjutnya, mereka memposting solusi mereka setelah saya, dan pengguna baru (userB) harus mengulangi hal yang sama.
The n
jangka th berurutan adalah istilah n kali setelah yang pertama, bekerja dengan nilai pertama adalah nilai pertama diberikan pada halaman Oei nya. Dalam pertanyaan ini, kita akan menggunakan pengindeksan 0 untuk urutan ini. Misalnya, dengan A000242 dan n = 3
, hasil yang benar adalah 25 .
Namun!
Ini bukan kode-golf , jadi kode terpendek tidak masalah. Tetapi panjang kode Anda masih memiliki dampak. Untuk mencegah duplikasi urutan, bytecount Anda harus unik . Ini berarti bahwa tidak ada program lain yang dikirim di sini dapat memiliki panjang yang sama dengan byte Anda.
Jika tidak ada urutan untuk panjang posting terakhir, maka urutan untuk posting Anda adalah urutan terendah yang tidak digunakan. Ini berarti bahwa urutan yang digunakan juga harus unik, dan urutannya tidak boleh sama dengan bytecount Anda.
Setelah jawaban diposting dan tidak ada jawaban baru yang diposting lebih dari seminggu, jawaban sebelum posting terakhir (orang yang tidak memutuskan rantai) akan menang.
Masukan dan keluaran
Masukan umum dan aturan keluaran berlaku. Input harus berupa integer atau representasi string dari integer dan output harus nilai yang benar dalam urutan.
Memformat
Seperti sebagian besar pertanyaan rangkaian jawaban, harap format jawaban Anda seperti ini
# N. language, length, [sequence](link)
`code`
[next sequence](link)
*anything else*
Aturan
- Anda harus menunggu setidaknya 1 jam sebelum memposting jawaban, setelah memposting.
- Anda tidak boleh memposting dua kali (atau lebih) berturut-turut.
- Nomor indeks urutan adalah nomor setelah
A
bagian, dan dengan nol di depan dihapus (misalnya untukA000040
nomor indeks adalah 40) - Anda dapat mengasumsikan bahwa input maupun output yang diperlukan tidak akan berada di luar rentang angka bahasa Anda, tapi tolong jangan menyalahgunakan ini dengan memilih bahasa yang hanya dapat menggunakan angka 1, misalnya.
- Jika panjang kiriman Anda lebih besar dari 65536 karakter, harap berikan tautan ke cara untuk mengakses kode (misalnya pastebin).
n
tidak akan pernah lebih besar dari 1000, atau berada di luar batas untuk urutan, hanya untuk mencegah perbedaan akurasi dari menghentikan bahasa dari persaingan.- Setiap 150 jawaban (valid), frekuensi penggunaan bahasa dapat meningkat. Jadi setelah 150 solusi telah diposting, setiap bahasa dapat digunakan dua kali (dengan semua jawaban sebelumnya dihitung untuk ini). Misalnya, ketika 150 jawaban telah diposting, Python 3 dapat digunakan dua kali, tetapi karena fakta bahwa itu telah digunakan sekali, ini berarti hanya dapat digunakan sekali lagi hingga 300 jawaban telah diposting.
- Harap membantu dan memposting tautan ke urutan berikutnya untuk digunakan. Ini tidak wajib, tetapi merupakan rekomendasi.
- Versi bahasa yang berbeda, misalnya Python 2 dan Python 3 adalah bahasa yang berbeda . Sebagai aturan umum, jika versi yang berbeda keduanya tersedia di Try It Online, mereka adalah bahasa yang berbeda, tetapi perlu diingat bahwa ini adalah aturan umum dan bukan jawaban yang kaku.
- Itu tidak dilarang, tapi tolong jangan menyalin kode dari halaman OEIS, dan benar-benar mencoba menyelesaikannya.
- Hardcoding hanya diperbolehkan jika urutannya terbatas. Harap perhatikan bahwa jawaban yang mendorong ini ( # 40 ) adalah pengecualian dari aturan. Beberapa jawaban di awal hardcode rantai, tetapi ini dapat diabaikan, karena tidak ada gunanya menghapus rantai hingga, katakanlah, # 100.
Cuplikan rantai jawaban
sumber
float
/double
type untuk menghasilkan nilai yang lebih besarn
?Jawaban:
345. brainfuck , 162 byte, A000301
Cobalah online!
Urutan selanjutnya!
Ini mengambil input karakter dengan titik kode
n
(menurut spesifikasi BF) dan output dengan cara yang sama. Untuk melihat angka-angka, saya sarankan menggunakan EsotericIDE @ Timwi .Penjelasan:
Karena ini menyimpan semua angka Fibonacci hingga yang penting, itu akan gagal untuk input yang BENAR-BENAR besar pada pita terikat.
Ini bisa diperpendek secara signifikan dengan melakukan hardcoding pada base (2), tetapi golfiness tidak menjadi masalah sama sekali.
sumber
22. FiM ++ , 982 byte, A000024
Urutan berikutnya
sumber
1. Triangular , 10 byte, A000217
Cobalah online!
Urutan berikutnya
Bagaimana itu bekerja
Format kode ke dalam segitiga ini
dengan IP mulai dari
$
dan bergerak ke Tenggara (SE, heh), berfungsi seperti ini:sumber
A000217 Triangular numbers
...73. Starry , 363 byte, A000252
Cobalah online!
Urutan berikutnya
Menggunakan rumus "di
a(n) = n^4 * product p^(-3)(p^2 - 1)*(p - 1)
mana produk berada di atas semua bilangan prima yang membagi n" dari OEIS.Bulan adalah no-op, tapi hei, ini bukan kode-golf.
sumber
97. Python 3 (PyPy) , 1772 byte, A000236
Pertama-tama, banyak terima kasih kepada Dr. Max Alekseyev karena telah bersabar dengan saya. Saya sangat beruntung bisa menghubungi dia melalui email untuk memahami tantangan ini. Jawaban Math.SE-nya di sini banyak membantu saya. Terima kasih kepada Wheat Wizard karena telah membantu saya juga. :)
Cobalah online!
Jika itu memberikan hasil yang salah, cukup tambahkan 100 ke sesuatu yang lebih besar. Saya pikir 10000 akan bekerja untuk 4 tetapi saya akan membiarkan komputer saya berjalan semalam untuk mengkonfirmasi itu; mungkin butuh beberapa jam untuk menyelesaikannya.
Perhatikan bahwa bagian (PyPy) hanya supaya saya bisa menggunakan Python lagi. Saya benar-benar tidak tahu banyak bahasa lain dan saya tidak akan mencoba untuk port ini ke Jawa dan berisiko tidak selesai tepat waktu.
Next Sequence (Juga tolong jangan lakukan hal-hal gila lagi; Saya tidak punya versi Python yang tersisa sehingga orang lain harus menyelamatkan tantangan ini D :)
sumber
107. TrumpScript , 1589 byte, A000047
Cobalah online!
Pertama kali pemrograman dalam TrumpScript, ada kemungkinan bahwa saya menciptakan kembali roda beberapa kali - 4 baris didedikasikan untuk menghitung 2 ^ n. Saya mencoba membuatnya terlihat seperti sesuatu yang (mabuk) Trump bisa katakan. Sebagai bonus, ini adalah skrip Python yang saya tulis untuk memverifikasi bahwa saya melakukan semuanya dengan benar. Ada beberapa perbedaan dengan program di atas, tetapi banyak yang secara langsung setara.
Urutan selanjutnya!
sumber
I will make cat feel good
O_OI will make Business Cat feel good
tidak akan berhasil ...30. Python 1 , 1112 byte, A000046
Cobalah online!
Bahkan tidak akan repot dengan golf ini. Hei, itu bukan jawaban Python terlama saya di situs ini!
Urutan berikutnya
sumber
_
tidak relevan; kita hanya perlu mengulanginya berkali-kali2. Haskell, 44 byte, A000010
Cobalah online!
Urutan berikutnya
sumber
9. Pyth , 19 byte, A000025
Suite uji .
Urutan berikutnya
sumber
>Q0
bukannyaQ
agar, Anda tahu, memiliki urutan berikutnya menjadi A000019.Keywords: easy,nice
8. Mathematica (10.1), 25 byte, A000070
Urutan berikutnya
sumber
206. Proton , 3275 byte, A000109
Cobalah online!
Urutan berikutnya
sumber
308. ENIAC (simulator) , 3025 byte, A006060
Kodesemu:
Tidak ada simulator online, hasil eksekusi:
Register dan konstanta:
Aliran sinyal program dan aliran data:
"Kode" penuh pada pastebin atau dalam komentar HTML di markup jawaban ini, untuk mencegah linkrot dan jawaban yang cukup panjang untuk digulirkan secara bersamaan. Ini menyenangkan!
Urutan berikutnya
sumber
15. CJam, 85 byte, A000060
Demo online
Urutan berikutnya
Pembedahan
OEIS memberi
dimana
sumber
67. LOLCODE , 837 byte, A000043
Kunci capslock saya pasti akan lepas, jadi saya menulis semua ini sambil menahan shift ..
Cobalah online!
Urutan berikutnya
sumber
PRAIME
upper
akangggUG
dalam vim di mana saya menulisnya, tapi saya tidak sepintar itu10. Magma, 65 byte, A000019
Coba di sini
lol builtin
Urutan berikutnya
sumber
24. Julia 0,5 , 33 byte, A000023
Perluasan egf exp (−2 * x) / (1 − x).
Cobalah online!
Urutan berikutnya.
sumber
121. Pip , 525 byte, A000022
Demo online
Urutan berikutnya
Fakta menyenangkan: ketika tantangan pertama kali diposting, saya membuat daftar nomor urut jahat kecil yang ingin saya tuju dengan CJam, dan A000022 berada di bagian atas daftar.
Ini mengimplementasikan fungsi pembangkit yang dijelaskan dalam EM Rains dan NJA Sloane, On Cayley's Enumeration of Alkanes (atau 4-Valent Trees) , Journal of Integer Sequences, Vol. 2 (1999), mengambil jumlah untuk sebanyak istilah yang diperlukan untuk koefisien th untuk diperbaiki dan kemudian telescoping tiga perempat dari jumlah. Secara khusus, teleskop bagian pertama berarti bahwa indeks siklus hanya harus diterapkan ke salah satu daripada semua dari mereka.
Ck
n
S4
Th
Kode rusak menjadi
Perhatikan bahwa ini adalah program Pip pertama saya, jadi mungkin tidak terlalu idiomatis.
sumber
156. C # (Mono), 2466 byte, A000083
Catatan: skornya adalah 2439 byte untuk kode dan 27 untuk bendera kompiler
-reference:System.Numerics
.Demo online . Ini adalah program lengkap yang mengambil input dari baris perintah.
Urutan berikutnya
Pembedahan
Saya mengikuti komentar Bowen di OEIS bahwa fungsi pembangkit di
A000083(x) = A000237(x) + A035349(x) - A000237(x) * A035350(x)
mana fungsi pembangkit komponen terkait oleh transformasi sebagaiA000237(x) = x EULER(A035350(x))
A035350(x) = BIK(A000237(x))
A035349(x) = DIK(A000237(x))
Saya menggunakan definisi dari
BIK
danDIK
dari https://oeis.org/transforms2.html tetapi rumus tampaknya memiliki sejumlah kesalahan ketik. Saya mengoreksiLPAL
tanpa banyak kesulitan, dan secara mandiri memperoleh formula untukDIK
didasarkan pada penerapan enumerasi Pólya ke indeks siklus grup dihedral . Antara # 121 dan # 156 saya belajar banyak tentang pencacahan Pólya. Saya telah mengirimkan beberapa kesalahan , yang mungkin terbukti bermanfaat bagi orang lain jika transformasi ini muncul kembali dalam rantai.sumber
3. JavaScript (ES6), 38 byte, A000044
Cobalah online!
Urutan berikutnya (harus mudah: P)
sumber
13. VB.NET (.NET 4.5), 1246 byte, A000131
A001246
Cobalah secara Online!
sumber
91. Python 2 (PyPy) , 1733 byte, A000066
Cobalah online!
Saya harap menggunakan Python 2 PyPy dianggap sebagai versi utama. Jika seseorang bisa memberi saya juru bahasa Python 0, saya bisa menggunakannya juga, tapi saya harap ini valid.
Ini dimulai pada 1 vertex dan bekerja, membuat representasi matriks adjacency dari setiap kemungkinan grafik tanpa arahan dengan banyak simpul. Jika trivalen, maka ia akan melihat melalui powerset dari tepi, yang akan diurutkan berdasarkan panjang. Jika siklus pertama yang ditemukan terlalu pendek, maka ia akan melanjutkan. Jika siklus pertama yang ditemukan cocok dengan input (diimbangi oleh 3) maka akan menghasilkan jumlah simpul yang benar dan berakhir.
Next Sequence <- semudah istirahat dari semua omong kosong matematika ini: D
EDIT : Saya menambahkan beberapa optimasi untuk membuatnya sedikit lebih cepat (masih tidak bisa menghitung istilah ketiga dalam batas 60 detik TIO) tanpa mengubah bytecount.
sumber
232. Funky ,
326330332 byte, A000938Cobalah online!
Polyglot dengan Javascript. Cobalah online!
Urutan berikutnya .
Gunakan rumus pada halaman OEIS untuk
O(n^2 log n)
kompleksitas, alih-alih naifO(n^6)
.Penjelasan cepat:
a[n_] := 2*Sum[(n - k + 1)*(n - m + 1)*GCD[k - 1, m - 1], {m, 2, n}, {k, 2, n}] - n^2*((n^2 - 1)/6)
dijelaskan di bagian kode Mathematica.Pembuktian formula:
Rumusnya setara dengan ini .
Biarkan ukuran kotak pembatas tiga poin menjadi
m * k
. Pertimbangkan 2 kasus:k != 0
danm != 0
: Ada 2 cara untuk memilih orientasi dari tiga titik (\
atau/
),gcd(k-1, m-1)-1
cara untuk memilih titik terletak di antara 2 titik lainnya, dan(n - k) × (n - m)
cara untuk memilih posisi kotak pembatas.k == 0
ataum == 0
: Ada 2 cara untuk memilih orientasi (|
atau-
),n
cara untuk memilih baris / kolom di mana titik terletak, danBinomial[n, 3] == (n*(n-1)*(n-2)) / 6
cara untuk memilih titik di baris / kolom itu.Beberapa catatan polyglot:
return
. Namun, seperti yang dijelaskan ATaco , [Funky] menganggapreturn
itu variabel. Jadi mem-parsing ekspresi itu, yang tidak melakukan apa-apa, lalu mem-parsing ekspresi selanjutnya. Dan ini digunakan sebagai output.^
sebagai bitwise xor, tidak seperti Funky yang digunakan^
sebagai eksponensial. Jadin*n
harus digunakan daripadan^2
memastikan kompatibilitas Javascript.+
,-
,*
, dll) memiliki awalan yang sama dan kanan asosiatif, sehingga ekspresi perlu kurung benar.sumber
11. Pari / GP, 64 byte, A000065
Cobalah online!
Urutan berikutnya
sumber
;_; I solved A000064 and you changed it. Downvoted.
281. Java 5, 11628 byte, A000947
Cobalah online!
Catatan:
Ini dapat memutus rantai.Rekor baru pada bytecount besar!Karena saya (secara keliru?) Menggunakan spasi alih-alih tab, bytecount lebih besar dari yang diperlukan. Di komputer saya ini adalah 9.550 byte. (pada saat penulisan revisi ini)20
dalamfor (int i = 0; i < 20; ++i)
untuk1000
)Yay! Ini dapat menghitung lebih banyak istilah daripada yang tercantum pada halaman OEIS! (untuk pertama kalinya, untuk tantangan saya perlu menggunakan Java) kecuali OEIS memiliki lebih banyak istilah di suatu tempat ...
Penjelasan cepat
Penjelasan deskripsi urutan.
Urutan meminta jumlah polyenoid nonplanar gratis dengan kelompok simetri C 2v , di mana:
Sebagai contoh, perhatikan pohon-pohonnya
Yang pertama tidak bisa tertanam dalam kisi heksagonal, sedangkan yang kedua bisa. Penanaman khusus itu dianggap berbeda dari pohon ketiga.
(2)
dan(3)
pohon di atas adalah planar. Yang ini, bagaimanapun, adalah nonplanar:(ada 7 simpul dan 6 tepi)
Misalnya, satu-satunya polyenoid dengan 2 simpul
memiliki 3 bidang refleksi: Yang horizontal
-
, yang vertikal|
, dan yang sejajar dengan layar komputer■
. Itu terlalu banyak.Di sisi lain, yang ini
memiliki 2 bidang refleksi:
/
dan■
.Penjelasan metode
Dan sekarang, pendekatan tentang bagaimana sebenarnya menghitung angka.
Pertama, saya menerima formula
a(n) = A000063(n + 2) - A000936(n)
(terdaftar pada halaman OEIS) begitu saja. Saya tidak membaca penjelasan di koran.[TODO memperbaiki bagian ini]
Tentu saja, menghitung planar lebih mudah daripada menghitung nonplanar. Itu yang dilakukan koran juga.
Jadi ... program menghitung jumlah polenoid planar, dan kurangi dari total.
Karena pohon itu planar, jelas memiliki
■
bidang pantulan. Jadi kondisinya bermuara pada "hitung jumlah pohon dengan sumbu refleksi dalam representasi 2D-nya".Cara naif akan menghasilkan semua pohon dengan
n
node, dan periksa simetri yang benar. Namun, karena kami hanya ingin menemukan jumlah pohon dengan sumbu refleksi, kami hanya dapat menghasilkan semua setengah pohon yang mungkin pada satu setengah, mirror mereka melalui sumbu, dan kemudian periksa simetri yang benar. Selain itu, karena polenoid yang dihasilkan adalah pohon (planar), ia harus menyentuh sumbu refleksi tepat sekali.Fungsi ini
public static Graph[] expand(Graph[] graphs, Point.Predicate fn)
mengambil array grafik, masing-masing memilikin
node, dan output array grafik, masing-masing memilikin+1
node, tidak sama satu sama lain (dalam terjemahan) - sehingga simpul yang ditambahkan harus memenuhi predikatfn
.Pertimbangkan 2 sumbu refleksi yang mungkin: Yang melewati titik dan bertepatan dengan tepi (
x = 0
), dan yang merupakan garis-bagi tegak lurus dari tepi (2x = y
). Kita hanya dapat mengambil salah satunya saja karena grafik yang dihasilkan adalah isomorfik.Jadi, untuk sumbu pertama
x = 0
, kita mulai dari grafik dasar yang terdiri dari satu simpul(1, 0)
(dalam kasusn
ganjil) atau dua node dengan tepi antara(1, 0) - (2, 0)
(dalam kasusn
genap), dan kemudian perluas simpul sedemikian rupay > 0
. Itu dilakukan oleh bagian "Refleksi tipe 1" dari program, dan kemudian untuk setiap grafik yang dihasilkan, refleksikan (mirror) itu sendiri melalui sumbu Xx = 0
(g.reflectSelfX()
), dan kemudian periksa apakah ia memiliki simetri yang benar.Namun, perhatikan bahwa jika
n
habis dibagi 2, dengan cara ini kami menghitung setiap grafik dua kali, karena kami juga menghasilkan gambar cermin oleh sumbu2x = y + 3
.(perhatikan 2 yang oranye)
Mirip dengan sumbu
2x = y
, jika (dan hanya jika)n
adalah genap, kita mulai dari titik(1, 1)
, menghasilkan grafik sedemikian rupa2*x > y
, dan merefleksikan masing-masing dari mereka di atas2x = y
sumbu (g.reflectSelfType2()
), terhubung(1, 0)
dengan(1, 1)
, dan periksa apakah mereka memiliki simetri yang benar. Ingatlah untuk membagi dengan 2 juga.sumber
6. R , 71 byte, A000072
Cobalah online!
Urutan berikutnya
sumber
the answer before the last posted (the one who didn't break the chain) will win
14. Python 2 , 60 byte, A001246
Cobalah online!
Urutan berikutnya.
sumber
26. TI-BASIC, 274 byte , A000183
Mengevaluasi rumus rekursif yang ditemukan di tautan OEIS.
Urutan berikutnya
sumber
34. Prolog (SWI) , 168 byte, A000073
Cobalah online!
Urutan berikutnya
sumber
49. SageMath , 74 byte, A000003
Cobalah online!
Urutan berikutnya
sumber
76. Pygmy , 4147 bytes, A000036
Urutan berikutnya
Anda dapat menjalankan kode di halaman ini . Misalnya, Anda bisa mendapatkan nomor 10 dalam urutan dengan menyalin kode di atas dan menambahkan:
sumber