http://en.wikipedia.org/wiki/Dissociated_press
Dissociated Press adalah algoritma yang menghasilkan teks acak dari teks yang ada.
Algoritme dimulai dengan mencetak N kata berurutan (atau huruf) dalam teks. Kemudian pada setiap langkah mencari setiap kejadian acak dalam teks asli dari N kata terakhir (atau huruf) yang sudah dicetak dan kemudian mencetak kata atau huruf berikutnya.
Menerapkan Dissociated Press, baik sebagai fungsi atau sebagai keseluruhan program. Kode terpendek menang. Jangan gunakan baris perintah atau skrip emacs untuk memanggil program Press Dissociated asli. Jangan gunakan perpustakaan eksternal apa pun.
code-golf
markov-chain
Ming-Tang
sumber
sumber
Jawaban:
Perl, 81
82Menggunakan 2 karakter yang tumpang tindih, diskon baris baru, berhenti ketika menemui jalan buntu.
Misalnya, digunakan pada awal pengujian artikel wikipedia untuk rantai Markov:
Ini menangani utf-8 secara tidak sengaja. Menyenangkan.
sumber
Brachylog , 45 byte
Cobalah online!
Memasukkan
(Sampel) output
Word level Dissociated Press hanya dengan beberapa byte lagi:
52 byte
Cobalah online!
Memasukkan
(Sampel) output
sumber
Berikut ini adalah algoritma berbasis kata yang sedikit lebih canggih yang ditulis dalam Scala , yang memperhitungkan kemungkinan urutan kata dengan panjang yang sewenang-wenang. (Itu bukan algoritma pers terdisosiasi asli .)
Algoritma adalah sebagai berikut. Di setiap langkah pilih setengah bergulir dari teks mulai dari posisi acak, cari urutan ekor terpanjang dari kata-kata output yang terjadi di setengah itu (ini mungkin 0 kata) dan hasilkan kata berikutnya.
Berikut adalah contoh keluaran yang dihasilkan dari artikel wikipedia di rantai markov:
By the way, jika Anda menggunakan
"[a-zA-Z .,!?]".r
sebagaiwordregex
Anda dapat menggunakan ini untuk menghasilkan surat berdasarkan press dipisahkan juga:Menjadi sangat menarik dengan file teks besar seperti file Jargon . Sekarang berbasis surat sudah cukup baik:
Wordbased menjadi sangat menghibur:
sumber
Python 2.7, 355 karakter
Saya sebenarnya telah menulis program seperti ini sebelumnya sebagai percobaan AI, jadi mari kita membedahnya sedikit, menghapus beberapa hal yang tidak perlu, dan bermain golf: D
input bekerja dengan memberikan nama file dan panjang output yang Anda inginkan, dalam kata-kata
teks sampel dibawa kepada Anda oleh tantangan sebelumnya
Secara opsional, Anda dapat menyimpan konten
m
ke file untuk digunakan nanti, sehingga tidak perlu menguraikan seluruh file, karena itu bisa memakan waktu lebih lama untuk membangun kamus yang merujuk kata-kata terutama untuk teks yang lebih besar (seperti buku).sunting: terlepas dari apakah sudah ada pemenang yang dipilih, saya tetap mempostingnya: P
sumber
Perl, 65 karakter
Ini sangat didasarkan pada jawaban JB , hanya bermain golf sedikit lebih. Menggunakan
say
penghematan char dua cheesy, jadi perlu dijalankan dengan Perl 5.10 atau lebih baru dan-M5.010
(atau-E
) beralih.Menjalankan kode ini pada artikel pers Wikipedia yang dipisah menghasilkan keluaran yang bagus:
sumber