4, 8, 15, 16, 23, 42
Tulis program yang menampilkan urutan angka ini tanpa batas. Namun, The Numbers tidak boleh muncul di kode sumber Anda di mana pun.
Berikut ini bukan program Java yang valid untuk menampilkan Angka karena Angka muncul dalam kode sumbernya:
class TheNumbers {
public static void main(String[] args) {
for(int n = 0;;) System.out.println(
n == 4 ? n = 8 :
n == 8 ? n = 15 :
n == 15 ? n = 16 :
n == 16 ? n = 23 :
n == 23 ? n = 42 : (n = 4)
);
}
}
Definisi "Bilangan tidak boleh muncul dalam kode sumber Anda" adalah sebagai berikut:
- Anda tidak boleh menggunakan angka 4.
- Anda tidak boleh menggunakan angka 8.
- Anda tidak boleh menggunakan angka 1 diikuti oleh angka 5.
- Anda tidak boleh menggunakan angka 1 diikuti oleh angka 6.
- Anda tidak boleh menggunakan angka 2 diikuti oleh angka 3.
Jika bahasa Anda mengabaikan karakter tertentu yang dapat ditempatkan di antara angka, itu bukan pengganti yang valid. Jadi misalnya jika bahasa Anda mengartikan literal 1_5
sebagai 15
, ini akan dihitung sebagai angka 1 diikuti oleh angka 5.
Basis alternatif termasuk dalam pembatasan, jadi misalnya:
- Biner 100 tidak dapat digunakan sebagai pengganti 4.
- Oktal 10 tidak dapat digunakan sebagai pengganti 8.
- Heksadesimal F tidak dapat digunakan sebagai pengganti 15.
Oleh karena itu, berikut ini adalah program Java yang valid (tetapi tidak sangat terinspirasi) untuk menampilkan The Numbers karena The Numbers tidak muncul dalam kode sumbernya:
class TheNumbers {
public static void main(String[] args) {
for(int n = '*';;) {
System.out.println(n -= '&');
System.out.println(n *= 2);
System.out.println(n += 7);
System.out.println(++n);
System.out.println(n += 7);
System.out.println(n += 19);
}
}
}
Perhatikan bahwa dalam program itu, '*'
dan '&'
diganti untuk bilangan bulat 42 dan 38, karena jika tidak angka 4 dan 8 akan muncul dalam kode sumbernya.
Definisi "menghasilkan urutan tanpa batas" terbuka untuk interpretasi. Jadi, misalnya, sebuah program yang menghasilkan mesin terbang semakin kecil sampai mereka "tak terbatas" kecil akan valid.
Kudos jika Anda dapat menghasilkan urutan dalam beberapa cara yang pada dasarnya tidak mengkodekan setiap angka.
- Turunkan ke formula. Kesan saya adalah tidak ada satu tapi mungkin ada atau bisa dipalsukan.
- Memperbaiki generator pseudo-acak untuk mengembalikan urutan.
Ini adalah kontes popularitas, jadi jadilah kreatif. Jawaban dengan suara terbanyak pada tanggal 26 Maret adalah pemenangnya.
sumber
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
akan jauh lebih baik daripadaThis is a stupid question.
, tapi itu hanya pendapat pribadi saya.Jawaban:
Jawa
Saya memutuskan untuk menambahkan entri lain karena ini benar-benar berbeda dari yang pertama (yang lebih mirip contoh).
Program ini menghitung rata-rata array yang dimasukkan oleh pengguna ...
... atau bukan?
sumber
Python
Sunting: Sesuai saran nneonneo, skrip sekarang tidak menyertakan digit.
sumber
while True:
sehingga jawaban Anda tidak mengandung digit sama sekali.while True:
lebih umum.Perl
Tidak ada yang disembunyikan dalam kode sumber. Nggak. Jika kode tidak berfungsi, ketikkan
use re "eval";
sebelumnya (diperlukan dalam Perl 5.18).Penjelasan dalam spoiler.
sumber
Brainfuck
Saya sangat buruk dalam seni ASCII!
Uji di sini: http://ideone.com/kh3DYI
sumber
Unix C
Ada banyak tempat untuk menemukan konstanta numerik.
sumber
C #
sumber
a(i)=a(i-1)+a(i-3)+a(i-5)
benar-benar tampak seperti solusi yang lebih mudahC #
Menggunakan fakta bahwa setiap urutan elemen N dapat dihasilkan oleh polinomial N-1 dan memasukkan angka melibatkan banyak bunyi bip dan boops. Sebagai referensi, polinomial yang saya peroleh adalah
Saya menetapkan faktor ke variabel yang dinamai untuk angka, untuk kesederhanaan;)
Versi pertama:
Saya menyukai implikasi dari meningkatnya ketegangan karena jumlah BIP berkurang setelah setiap angka.
Lalu saya pikir saya bisa menghitung faktor-faktor menggunakan bunyi bip dan boops, juga:
Pergi sedikit berlebihan setelah itu ...
Menggunakan operator default dalam C # untuk tipe nilai memungkinkan inisialisasi BEEEP ke nol. Dengan cara ini tidak ada literal numerik yang digunakan dalam kode. Algoritma dasarnya sama. tetapi faktor-faktornya dihitung sebaris.
sumber
D
Tidak diizinkan menggunakan angka 4, 8, 15, 16, 23, atau 42 dalam kode saya? Tidak masalah, maka saya tidak akan menggunakan angka sama sekali!
sumber
Javascript + HTML
Anti-golf!
The
<pre>
elemen menampilkan nomor dalam urutan. Ini juga berisi semua kode yang diperlukan untuk mendapatkan nomor berikutnya dalam urutan. Jadi<pre>
ini dievaluasi, yang menghasilkan teks yang<pre>
sedang diperbarui menyerupai angka berikutnya dalam urutan. Proses ini berulang tanpa henti.Ini dia beraksi!
sumber
C
Dapatkan kacamata menyipitkan mata Anda di :-)
sumber
4
dan dua8
di sana.Haskell, 1 LoC
Saya memutuskan untuk menggunakan one-liner yang bisa dibaca hanya untuk menunjukkan betapa hebatnya Haskell. Juga, saya telah memutuskan untuk menghindari semua digit, untuk berjaga-jaga.
Berkat evaluasi malas bawaan, Haskell dapat memanipulasi (memetakan, membagi, bergabung, memfilter ...) daftar yang panjang tak terhingga. Bahkan memiliki beberapa built-in untuk membuatnya. Karena string hanyalah daftar karakter, string panjang yang tak terbatas juga bukan misteri bagi Haskell.
sumber
fromEnum
terlihat lebih bagus daripadaData.Char.ord
, dan agak lebih pendekMathematica
Kita dapat menjawab pertanyaan dengan memfokuskan pada penyebut parsial berulang dari fraksi lanjutan periodik yang ditunjukkan di bawah ini. Mereka adalah yang kita butuhkan.
Bagaimanapun, mereka terdiri dari urutan non-terminasi yang kami coba produksi: 4, 8, 15, 16, 23, 42, 4, 8, 15, 16, 23, 42 ...
Dalam Mathematica seseorang memperoleh irasional kuadrat yang sesuai dengan pecahan lanjutan periodik oleh
di mana 0 mengacu pada bagian integer implisit.
Kami dapat memeriksa dengan membalikkan operasi:
4 dan 8 melanggar salah satu aturan tantangan. Substring
15
merupakan pelanggaran tambahan. Kita dapat memformat ulang kuadrat irasional untuk memenuhi aturan.Sekarang kita ambil urutan bunga:
Dan cetak daftar selamanya ...
sumber
16
fraksi ketika saya mengetik komentar tentang itu.C / C ++
Hanya menggunakan karakter
L
,O
,S
danT
berulang kali agar:sumber
Jawa
Saya tidak dapat menemukan pola dalam urutan itu. Jika tidak ada pola yang dapat dikenali, kita mungkin hanya perlu mengumpulkan sekelompok bilangan prima kecil, menjejalkannya ke dalam RNG bawaan Java, dan menyebutnya sehari. Saya tidak melihat bagaimana itu bisa salah, tapi sekali lagi, saya optimis :)
sumber
while(true)
: ideone.com/1xaPdOBash satu-liner
Line break ditambahkan untuk keterbacaan. Itu (ab) menggunakan fakta bahwa ini adalah enam angka pertama dari Urutan A130826 OEIS .
sumber
awk -F"[ ,]" '/%S/ {for (i=3;i<=9;i++) printf $i" "}'
kecurl
.yes
dan menjatuhkan pengalihan/dev/null
dengancurl -s
. Sesuatu sepertiyes $(curl -s "https://oeis.org/search?q=id:A$((130726+100))&t=text" | awk -F"[ ,]" '/%S/ {for (i=3;i<9;i++) printf $i" "}')
yes
dancurl -s
- Saya hanya tanpa malu menambahkan ini ke jawaban saya. :-)C tidak menggunakan angka sama sekali dan tidak ada nilai karakter
sumber
Saya suka gagasan menggunakan urutan
seperti pada jawaban ini . Menemukannya melalui Pencarian OEIS sebagai urutan A122115 .
Jika kita melewati urutan secara terbalik, kita akan menemukan sebuah inisialisasi kuintuple yang sesuai yang tidak mengandung 4, 8, 15, 16 atau 23.
Python3:
sumber
JavaScript
Tidak ada angka sama sekali adalah langkah yang baik. Tapi daripada mencetak urutan sekali per melewati loop, hanya mencetak sekali nomor per pass.
Bagian bawah string mengkode angka yang akan dicetak dan bagian atas string mengkode karakter berikutnya yang ditemukan. Di mana kedua bagian bertemu (satu
F
) kode mengatur ulang siklus.sumber
Python
Operator bitwise dan beberapa matematika sederhana.
sumber
Rubi
Menghasilkan Bilangan dengan menyematkan urutan mistis yang sama 0, ∞, 9, 0, 36, 6, 6, 63 ;
Tidak ada yang baik bisa datang dari ini.
sumber
C (
5450 karakter)Saya memposting jawaban golf karena golf setidaknya membuatnya menyenangkan.
sumber
a=0;
. Satu-satunya efek adalah bahwa Anda dapat memulai urutan di tempat lain selain 4 (mungkin 8). Bagaimanapun, ini akan mengacaukan urutan ketikaa
meluap. Ini perilaku yang secara teknis tidak terdefinisi, tetapi kemungkinan hasilnya adalah Anda akan mencetak separuh waktu.for
tidak membantu jika tidak ada inisialisasi.for(;;)
adalah jumlah karakter yang sama denganwhile()
. Saya menafsirkan aturan sehingga baris baru harus ada di sana ... Tapi saya bisa menggunakan rekursi ekor dengan utama ...Haskell
http://ideone.com/erQfcd
Sunting: Apa yang saya gunakan untuk menghasilkan koefisien: https://gist.github.com/ion1/9578025
Sunting: Saya sangat menyukai program agrif dan akhirnya menulis setara Haskell sambil mencari tahu. Saya memilih basis yang berbeda untuk angka ajaib.
http://ideone.com/kzL6AK
Sunting: Saya juga menyukai program keduanya dan akhirnya menulis implementasi Haskell dari irasional kuadrat ;-). Menggunakan perpustakaan dan nomor sihir agrif, program ini akan mencetak urutannya.
Ini adalah bagaimana seseorang dapat mencari angka ajaib dengan bantuan perpustakaan:
Nilai yang dicetak berarti nomor
(−644047 + 1 √424477224534)/30815
. Yang perlu Anda lakukan adalah menemukan faktor yang menghilangkan urutan digit yang tidak diizinkan dalam angka sementara tidak mengubah nilai ekspresi.sumber
C #
Saya menemukan benih setelah mendengarkan beberapa stasiun radio dalam penerbangan di Pasifik.
sumber
Python
Sementara banyak orang menggunakan pola yang diambil dari OEIS, saya memutuskan untuk membuat serangkaian fungsi saya sendiri untuk mewakili angka.
Fungsi pertama yang saya buat adalah periodik (). Ini adalah fungsi yang mengulangi setiap enam angka input menggunakan sifat siklis dari fungsi trigonometri. Bunyinya seperti ini:
Lalu, saya membuat polinomial (). Itu menggunakan polinomial berikut:
(Dalam kode saya, beberapa koefisien direpresentasikan sebagai jumlah karena mengandung angka yang hilang sebagai salah satu dari digit mereka.)
Polinomial ini mengonversi output periodik () ke angka yang hilang, seperti ini:
Dengan terus meningkatkan i dan melewati kedua fungsi, saya mendapatkan angka yang hilang terulang tanpa batas.
(Catatan: Saya banyak menggunakan float () dalam kode. Ini adalah Python yang melakukan pembagian floating-point alih-alih dengan mengatakan 2/3 = 0.)
sumber
4
dipolynomial
.Emacs Lisp 73 karakter
Cara terbaik untuk mengulang selamanya? Daftar siklik!
Tapi tunggu, masih ada lagi!
? \ ^ D adalah cara yang bagus untuk menyisipkan char untuk EOT, namun jika saya hanya mengirim file saya tidak akan memerlukan literal "\ ^ D" Saya hanya bisa memasukkan '?' diikuti oleh karakter EOT yang sebenarnya, sehingga mengurangi jumlah karakter yang dibutuhkan hingga: 63
Sunting
Saya telah bekerja pada "gel" yang belum merupakan bahasa nyata, tetapi pada dasarnya adalah serangkaian macro emacs lisp untuk kode golf. Dalam "gel" ini akan menjadi solusinya:
dan tanpa menunggu:
44 karakter dengan entri karakter yang bagus. Akan menjadi 34 jika bukan karena itu pengiriman web.
sumber
Julia
Dengan meneliti beberapa saat saya menemukan cara matematika untuk mengekspresikan urutan dengan urutan lain tanpa menggunakan salah satu angka (atau cara rumit untuk menggunakannya):
Keluaran:
sumber
C ++
Bahasa bersih yang bagus seperti C ++ dapat memungkinkan Anda untuk meletakkan sumber Anda dengan cara yang rapi dan mudah dibaca, dan memiliki keuntungan karena mudah disalin dengan tangan dengan ambiguitas minimum.
Di sini solusinya dicapai hanya dengan menggunakan angka 1.
Uji: http://ideone.com/fuOdem
sumber
Skema (Tipu Daya)
http://ideone.com/QBzuBC
Bisa dibilang ini melanggar aturan "jangan menyandikan angka di pangkalan lain", tapi saya pikir itu cukup jelas sehingga tidak masuk hitungan. Sebagai bukti ketidakjelasan ini, dua angka ajaib di base 51 adalah:
Sunting : Trik yang sama, representasi yang berbeda. Saya sebenarnya lebih menyukai yang ini, karena tidak tergantung pada pangkalan yang dipilih secara sewenang-wenang. Namun, itu membutuhkan implementasi skema dengan dukungan akurasi tak terbatas untuk irasional kuadrat, yang (AFAIK) tidak ada. Anda bisa mengimplementasikannya dalam sesuatu seperti Mathematica.
sumber
PHP
Saya pikir sudah saatnya seseorang mengajukan jawaban php, bukan yang terbaik tetapi yang menyenangkan pula
Ahs adalah teriakan para penumpang saat pesawat jatuh
sumber
Perl
sumber