Paul adalah salah satu kenalan Belgia Anda, dan dia ingin Anda membuat program yang menghasilkan setidaknya satu dari lima string berikut :
12496=>14288=>15472=>14536=>14264
14264=>12496=>14288=>15472=>14536
14536=>14264=>12496=>14288=>15472
15472=>14536=>14264=>12496=>14288
14288=>15472=>14536=>14264=>12496
Itu mewakili teman-teman yang paling dia banggakan, dan dia ingin makan bersama mereka. Paul juga berpikir bahwa angka 6 itu sempurna, dan itu adalah satu-satunya angka yang layak digunakan. Jadi, Anda tidak dapat menggunakan angka selain "6" dalam kode Anda (0 hingga 5 dan 7 hingga 9 dilarang). Program Anda tidak dapat mengambil input apa pun. Output dapat berisi sampah sebelum dan / atau setelah string tetapi harus mengandung setidaknya satu dari string di atas.
Misalnya ini adalah output yang valid:
220frefze
f**14288=>15472=>14536=>14264=>12496**fczfe fz**15472=>14536=>14264=>12496=>14288**zfe
fzehth
Saya "ligthly" mengisyaratkan dalam pertanyaan seperti bagaimana saya mengharapkan ini diselesaikan, tetapi bagaimana saya tahu? Mungkin ada cara yang lebih baik ... Semoga Anda bersenang-senang.
Ini adalah kode-golf: skor terendah dalam byte menang.
Jawaban:
05AB1E ,
1817 byteCobalah online!
Penjelasan
Singkatnya, kami menghitung setiap angka sebagai
f(n+1) = sum(divisors(f(n)) - f(n)
sumber
Pyke, 16 byte
Coba di sini!
Kapan saja string literal berada di akhir program, itu bertukar dengan token sebelum itu, menghemat 1 byte dalam kasus-kasus seperti ini. Pyke ini
factors
fungsi tidak termasuk jumlah itu sendiri atau 1. Jika angka diizinkan, 1 byte bisa diselamatkan dengan menggantiw$
dengan4
Pyke, 21 byte
Coba di sini!
Buat daftar angka yang diperlukan dan gabungkan. Tidak terlalu menarik terlepas dari trik dengan senar.
sumber
MATLAB, 44 byte
Cobalah online!
Saya belum menemukan pola dalam angka (dan itu akan sulit untuk menggunakan pola untuk apa pun, karena saya tidak dapat menggunakan angka), jadi saya hanya akan pergi untuk pendekatan naif.
'=>@EBIJ=@>DDIJ=A@C>IJ=@A?BIJ=@>B@'
adalah string'12496=>14288=>15472=>14536=>14264'
ketika 12 ditambahkan ke nilai-nilai ASCII. Sekarang, masukkan string itu, kurangi6+6
, dan gabungkan dengan string kosong''
untuk mengubahnya menjadi array karakter.sumber
=>
.JavaScript (ES6), 57 byte / 47 (UTF-8) karakter
Terima kasih kepada user5090812 untuk menghemat 10 B
Penjelasan
Pertama kita membuat sebuah array dan mengisinya dengan karakter dalam string
バ㟐㱰㣈㞸
. Kemudian kita mengulangi string (a
memiliki nilai elemen saat ini) dan kita mengubah karakter menjadi kode karakternya. Lalu kita gabungkan semua nilai dalam array dengan=>
.Lama: 67 byte
Penjelasan
Pertama kita membuat array dengan panjang 5. Kemudian kita mengubah nilai array pada setiap indeks untuk kode karakter dari karakter pada indeks yang sama dalam string
バ㟐㱰㣈㞸
, yang merupakan jumlah semua teman Paul secara berurutan. Ketika kami mendapatkannya, kami menggabungkan array, dan kami gunakan=>
sebagai pemisah.Pemakaian
Untuk menggunakannya, cukup jalankan ini:
Keluaran
sumber
Ruby, 36 byte (26 karakter)
Karena mengapa tidak. Membosankan sekali.
versi yang lebih lama - 53 byte
Penjelasan: penyandian angka-angka pada basis 25 memberikan 5 string enam-bebas, untuk memecahkan kode saya hanya harus mewakili angka 25 hanya menggunakan 6: (6-1) (6-1) => ~ -6 ~ -6
sumber
Perl 6 ,
6359 byteMemecahkan angka-angka dari basis 25, karena itulah satu-satunya basis yang didukung oleh
.parse-base
(2 hingga 36) di mana tak satu pun dari mereka memiliki angka yang tidak valid.Terima kasih kepada Neil untuk -3 byte.
Perl 6 ,
8275 byteMemecahkan angka
15472
di basis 36, dan kemudian menghasilkan urutan dengan menghitung setiap angka sebagai jumlah pembagi yang tepat dari angka sebelumnya.Perl 6 , 69 byte (47 karakter) - tidak bersaing
Tidak menggunakan digit ASCII terlarang, gunakan digit Unicode dari blok Arab-Indic sebagai gantinya (masing-masing 2 byte)! The
{ }
interpolasi string yang memastikan mereka diuraikan sebagai Perl 6 nomor literal, dan kemudian stringified untuk representasi ASCII mereka.Oke, ini curang - itu sebabnya saya tidak menggunakannya sebagai jawaban utama saya ... :)
sumber
--$/*$/
?--($/=6)*$/)
.Jelly ,
54 byteMencetak semua lima string. Mengambil keuntungan dari kenyataan bahwa output "sampah" diperbolehkan dan mengubur lima string 10 3003 karakter output.
Bagaimana itu bekerja
sumber
C,
948477 BytesSederhana sederhana. Terima kasih khusus @Neil
f () {printf ("% d =>% d =>% d =>% d =>% d", '~' 'r' - 'd', '~' 'd' - 'h', ' ~ ' ' r '-' L ',' ~ ' ' z '+' d ',' ~ '*' t '-' P ');}sumber
char*m
dalamfor()
untuk menyimpan byte, dan itu juga membuat fungsi dapat digunakan kembali (diperlukan kondisi fungsi). Juga, Anda menghasilkan nol trailing;*++m
akan memperbaikinya. Juga, Anda dapat menyimpan beberapa byte dengan mengurangkan 60 bukan 66:g(){for(char*m="!mnpuryzmpnttyzmqpsnyzmpqoryzmpnrp";*++m;)putchar(*m-66+6);}
.initial declaration used outside C99 mode
tapi saya senang untuk menyederhanakan putchar. Terima kasih!PHP,
736360 byteJalankan dengan
-nr
.sedikit kurang malas: mengambil string sebagai daftar
=>1(ascii)(ascii)
yaitu:
124
,96
,=>1
,42
,88
,=>1
,54
,72
,=>1
,45
,36
,=>1
,42
,64
;cetak
=>1
dengan indeks string, tambahkan kode asciikerusakan
sumber
C ++, 92 byte
sumber
PHP, 53 byte
Hex dump:
Keluaran:
Penjelasan:
Masing-masing bagian bilangan bulat lima digit dikodekan sebagai endian pendek pendek yang tidak ditandatangani, kemudian digabungkan bersama-sama dan hasilnya di-gzip. Ini terjadi untuk menghasilkan uap byte yang tidak memiliki karakter digit yang menyinggung, yang kemudian hard-coded menjadi string. Untuk mengekstrak, un-gzip stream, buka paket dua byte pendek, tafsirkan masing-masing sebagai string, dan bergabunglah dengan
>=
.sumber
Java 8, 134 byte
Golf:
Tidak lengkap, program lengkap:
sumber
Batch, 191 byte
Saya memperkirakan bahwa akan diperlukan minimal 32 byte untuk menghitung setiap angka hanya menggunakan
6
ditambah 32 lainnya untuk mencetak semuanya, yang sudah 192 byte, jadi saya menang dengan menghitung rantai damai. Juga, saya pikir lima%
s berturut-turut adalah catatan bagi saya. Juga, Trik batch rapi:%n%
diganti sebelumfor
loop dievaluasi, sehingga loop menghitung semua faktorn
, dan mengurangi mereka darin
, sehingga menghasilkan negasi dari hasil yang diinginkan.sumber
Jelly , 12 byte
Mencetak string keempat dan tidak ada yang lain.
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2,
7872 byteSunting - Terima kasih kepada Stewie Griffin karena telah menghemat 6 byte!
Juga, solusi lain adalah untuk mengeluarkan semua permutasi yang mungkin. OP mengatakan sampah baik-baik saja.
Ada terlalu banyak redundansi dalam mengkonversi dari
int
ataulist
kestr
. Saya kira ini akan lebih mudah dalam beberapa bahasa esoteris, tetapi saya tidak tahu satu pun dari mereka.sumber