Lost adalah bahasa pemrograman 2-D di mana posisi awal dan arah ip sepenuhnya acak.
Ini membuatnya sangat sulit untuk membuat program Lost yang deterministik. Namun hari ini kami tidak menulis program deterministik, kami menulis RNG.
Tulis program yang Hilang yang tidak mengambil input dan output satu digit (0,1,2,3,4,5,6,7,8, atau 9), dengan semua digit memiliki probabilitas yang sama untuk menjadi output. Karena lokasi awal dan arah Lost adalah satu-satunya sumber keacakan, satu-satunya cara untuk melakukan ini adalah memiliki setiap lokasi di sumber Anda menghasilkan angka yang berbeda dari 0 hingga 9 dengan angka yang sama menghasilkan setiap digit.
Anda dapat menghitung probabilitas setiap digit dengan menggunakan -Q
flag dan memipakannya ke skrip python ini
import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]
Ini adalah kode-golf sehingga jawaban akan dinilai dalam byte dengan lebih sedikit byte lebih baik.
Ikhtisar Kehilangan
Lost adalah IO 2D pembungkus implisit yang mengambil banyak hal dari cetakan Klein. Berikut ini adalah lembar contekan cepat dari apa yang dilakukan oleh perintah yang hilang
\
,/
,|
Mirrors ip<
,^
,>
,v
Hai ip dalam arah[
Merefleksikan ip jika bergerak ke timur; menjadi]
jika ip bergerak secara horizontal]
Merefleksikan ip jika bergerak ke barat; menjadi[
jika ip bergerak secara horizontal!
Melompati operasi selanjutnya?
Muncul dari atas tumpukan dan melompat jika tidak nol:
Gandakan bagian atas tumpukan$
Tukar dua item teratas dari tumpukan(
Muncul dari tumpukan dan mendorong ke ruang lingkup)
Muncul dari cakupan dan mendorong ke tumpukan0
-9
mendorong n ke atas tumpukan"
Mulai dan akhiri string literal. Selama string, perintah literal tidak dijalankan dan alih-alih nilai karakternya didorong ke stack.+
Menambahkan dua angka teratas*
Mengalikan dua angka teratas-
Kalikan bagian atas dengan -1%
Mematikan keamanan#
Hidupkan keamanan@
Mengakhiri eksekusi jika keamanan tidak aktif (mulai aktif)
[]
bertindak sebagai pintu,<>
arahkan ke arah dan()
simpan dan ingat dari ruang lingkup. Lingkup digunakan untuk menyimpan nilai.@
atau apakah ada usecases lain? Tentang kurung, saya tidak mengerti bagian ini:becomes ] if the ip is moving horizontally
. Bergerak ke timur juga secara horizontal, bukan?Jawaban:
81101 byteIni mungkin golf lebih lanjut ...
Cobalah online!
sumber
0
memiliki peluang 7/101 untuk dicetak (salah satu dari<
atau di^
bawah bloknya, ditambah simbol>
dan%
),1
-8
memiliki peluang 10/101, dan9
memiliki peluang 11/101. Maka sepertinya ada kemungkinan itu hanya berlangsung selamanya.Hilang , 54 byte
Cobalah online!
Hanya disalin dari jawaban pppery dan melakukan beberapa hal acak. Saya tidak tahu apa-apa tentang bahasa yang hilang. Dan saya bahkan tidak tahu apa yang terjadi untuk kode di atas. Apakah ini berhasil? (Saya tidak tahu)
sumber
-Q
kerjanya? Outputnya sepertinya didistribusikan secara normal. Pasti menyenangkan memiliki spesifikasi lengkap dari bahasa yang ditautkan dalam pertanyaan.-Q
kerjanya. Karena bahasa ini acak, verifikasi dilakukan dengan menjalankan semua kemungkinan.-Q
melakukan ini dan mencetak semua hasil. Semakin pendek program semakin sedikit kemungkinan yang ada dan semakin sedikit keluaran yang berasal-Q
.