Gambarlah program atau fungsi yang akan menulis ke STDOUT
n
waktu (masing-masing untuk satu langkah) string yang berisi titik .
di lokasi walker. Program juga perlu menulis satu baris setiap s
detik (atau menunggu beberapa s
detik setelah setiap baris).
Jalan acak adalah formalisasi matematis dari lintasan yang terdiri dari suksesi langkah acak ( wiki ), sehingga setiap langkah baru akan menjadi langkah terakhir ditambah nilai baru, jadi t
nilai langkah apa pun hanyalah jumlah dari semua nilai acak sebelum ir ditambah nilai awal.
Program harus mengambil 2 input dan hanya akan menggunakan spasi " "
dan titik "."
pada output. Nilai awal walker akan 20
sedemikian rupa sehingga output harus berupa titik setelah 19 spasi.
. #19 spaces then a dot
Setiap langkah baru nilainya akan menjadi nilai terakhir dari walker plus salah satunya [-2-1,0,1,2]
(masing-masing 20%). Setelah posisi baru dicetak, program harus menunggu beberapa s
detik dan melanjutkan ke langkah berikutnya. Jika langkah tersebut membawa walker ke luar jangkauan, langkah 1 to 40
itu harus diabaikan dan posisi walker tetap sama. Jumlah spasi akan selalu berupa angka dari 0 hingga 39.
Contoh
#input
Mywalk(s = 0.1, n = 30)
#output
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pertimbangan
Anda dapat mengambil input sebagai format apa pun yang masuk akal
Kode terpendek menang
Tidak apa-apa jika program Anda hanya menerima detik sebagai bilangan bulat
n
jumlah langkahnya?1 to 40
, karena jumlah ruang selaluposition-1
.Jawaban:
Pyth, 39
Dibawa
s
sebagai input baris pertama dann
sebagai input kedua. Bekerja pada baris perintah tetapi tidak dengan penerjemah online. Program Pyth pertama saya! Tips golf sangat dihargai.sumber
Q
danE
untuk dua input sebagai gantinyahQ
daneQ
, jika Anda baris baru memisahkan input.Matlab, 112
Gagasan intinya adalah membuat daftar kemungkinan posisi selanjutnya dan kemudian secara seragam menggambar salah satunya. Jika kita mis di posisi $ l = 1 $ langkah yang mungkin adalah
[-1,0,1,2,3]
Tentu saja jika kita memilih-1
yang tidak valid dan kita harus tetap di posisi yang sama. Itulah sebabnya kami mengganti posisi yang tidak valid dengan posisi saat ini[1,0,1,2,3]
,, dan kemudian secara acak memilih elemen dari daftar yang diperbarui ini.OP meminta kami menggambar program, jadi begini saja:
Transkripsi:
sumber
Perl,
1361281161061019086Membutuhkan detik untuk menjadi bilangan bulat.
Jalankan dengan
perl <filename> <second delay> <number of steps>
.Mungkin ada lebih banyak potensi bermain golf di sini, meskipun jujur, saya terkejut itu sampai sejauh ini. (Ayo, hanya 6 byte lagi untuk mengalahkan jawaban bash ...)
Perubahan
$s
dan$n
dan hanya menggunakan dataran$ARGV[0]
dan$ARGV[1]
$"
dan tidak perlu secara khusus mendefinisikan$u
sebagai$undef
.$x
digunakan dan dengan menggunakanmap
alih-alihfor
.say
alih-alihprint
.sumber
Python 2,
124119 byte@janrn dan @Steve Eckert: Saya tidak punya cukup reputasi untuk mengomentari jawaban Anda, tetapi inilah dasarnya versi Anda diperpendek. Tugasnya adalah menggambar program atau fungsi , jadi dengan menggunakan
f(s,x)
Anda dapat menyimpan beberapa bit, juga dapat Anda gunakanmax(0,min(x,39))
untuk menghindariif
klausa tambahan . Turun ke:sumber
Bash, 81
Sunting: Jika langkah membawa walker ke luar rentang 1 sampai 40 itu harus diabaikan dan posisi walker tetap ditangani dengan benar.
Input dari opsi baris perintah. Misalnya:
sumber
Ruby, 84
sumber
Python 2.7,
198162143133Saat memanggil skrip dengan
python script.py
, input pertama adalah jumlah langkah, kedua input waktu antar langkah (menerima float atau int). Ada saran untuk meningkatkan?Suntingan
print ' '*p+'.'
, terima kasih kepada @corsiKlause Ho Ho Ho;
jika memungkinkanp=max(1,min(p+r.randint(-2,2),40))
(saya tidak bisa mengomentari jawaban Anda juga, tapi terima kasih; tidak ingin menyalinnya sepenuhnya)sumber
' '*p
mengulangi string?Memproses,
150147Pemakaian:
Catatan:
1000
tidak dapat diubah ke1e3
karena alasan jenis.sumber
Lua, 140 Bytes
Catatan: Program ini membutuhkan paket LuaSocket.
sumber
Perl 6 , 92 byte
Pemakaian:
sumber
JavaScript (ES6), 125 byte
Penjelasan
Uji
Tampilkan cuplikan kode
sumber
k4, 61 karakter
contoh dijalankan:
sumber
Mathematica,
122117 byteFungsi anonim rekursif, mengambil input dalam urutan yang ditentukan. Mungkin bisa bermain golf lebih lanjut.
sumber
Python 3, 154 byte
Hasilkan string spasi lebih besar dari panjang maksimum yang dibutuhkan, lalu cetak string itu HANYA hingga char pada indeks 'g', lalu cetak a '.'. Akhiri dengan menambah g dengan nilai acak dalam rentang [-2: 2], dan ulangi.
Jika ada yang bisa membantu saya bermain di blok input yang mengerikan, saya akan menghargai itu.
sumber
sys.argv
?while z:
, mengapa tidak digunakanfor i in range(1,z)
?sys.argv
dan impor, saya tidak bisa melihat bagaimana saya bisa menyimpan byte yang melakukan hal itu. Dan bahkan dengan garis ekstra untuk menyatakanc
kemudian penurunanc
danz
, masih lebih murah untuk melakukannya dengan cara ini, menurut perhitungan saya.C funtion, 114
Cukup banyak terjemahan langsung dari jawaban bash saya .
Program uji penuh:
sumber