นี่คืออัลกอริทึมที่ใช้คำที่ซับซ้อนขึ้นเล็กน้อยที่เขียนในScalaซึ่งจะนำความน่าจะเป็นของการเรียงลำดับคำที่มีความยาวตามอำเภอใจมาพิจารณา (นั่นไม่ใช่ขั้นตอนวิธีการกดที่ไม่เกี่ยวข้อง)
อัลกอริทึมเป็นดังนี้ ในแต่ละขั้นตอนเลือกครึ่งหนึ่งของข้อความที่เริ่มต้นที่ตำแหน่งสุ่มค้นหาลำดับหางที่ยาวที่สุดของคำที่ส่งออกที่เกิดขึ้นในครึ่งนั้น (ซึ่งอาจเป็น 0 คำ) และส่งออกคำถัดไป
import io._, collection.mutable.ArrayBuffer, util.Random
import java.io.FileInputStream
val lines = new BufferedSource(new FileInputStream("markov.txt")) getLines
val wordregex = "\\b[a-zA-Z]+\\b|[.,?!]".r
val words = lines flatMap (wordregex findAllIn _) toArray
val rollingwords = words ++ words.slice(0, words.length / 2)
val rnd = new Random()
val outwords = new ArrayBuffer[String]()
for (i <- 1 to 1000) {
val startposition = rnd nextInt (words.length * 2 / 3)
val half = rollingwords slice (startposition, startposition + words.length / 3)
var newword = ""; var n = 0; var index = 0
while (index >= 0 && n < half.length && n < outwords.length) {
index = half.indexOfSlice(outwords.takeRight(n))
if (index >= 0 && index < half.length - n) {
newword = half(index + n)
}
n = n + 1
}
outwords += newword
}
println(outwords.foldLeft("")(_ + " " + _))
นี่คือผลลัพธ์ตัวอย่างที่สร้างขึ้นจากบทความวิกิพีเดียบนเชนมาร์คอฟ:
วันนี้การกระจายแบบอยู่กับที่จะไม่ซ้ำกันฉันน่าจะเป็นไปได้ที่ตำแหน่ง k Rightarrow ไม่ใช่การแจกแจงความน่าจะเป็นช่วงการเปลี่ยนภาพสามารถแสดงการแมปได้เฉพาะในกรณีที่พารามิเตอร์ในหน่วยระบบ, อนุญาตให้ n เป็นค่าเฉพาะ เป็นไปตามการกระจายแบบนิ่งสำหรับ Q
โดยวิธีการถ้าคุณใช้"[a-zA-Z .,!?]".r
เป็นwordregex
คุณสามารถใช้สิ่งนี้เพื่อสร้างตัวอักษรที่แยกตัวออกจากการใช้ตัวอักษรเช่นกัน:
figurrent หรือรอบระยะเวลานี้เมื่อ backgrobability Pater ext state ด้วย stochare จำนวน detelemely ถ้าคลาส theresting ที่ Mi pimatransie, เปิดที่ nnn ต้องการความต้องการโดยสถานะระบบคือ errords, จำกัด งานทั้งหมด
ได้รับน่าสนใจจริงๆกับแฟ้มข้อความที่มีขนาดใหญ่เช่นไฟล์อาชีพ ตอนนี้ตัวอักษรที่ใช้ค่อนข้างดีอยู่แล้ว:
อัลกอริทึมทิศทางอื่น ๆ จะผิดพลาดอย่างมีความสุขและผิดปกติ; มันเป็นการจดย่อสำหรับ "out be proms และการแฮ็ก meta-location ซึ่งสร้างมานานหลายทศวรรษรอบ ๆ เวิร์กสเตชันการเข้าถึงอินเทอร์เน็ต LISP Mac ก่อนหน้านี้อาจตายไปแล้วการวัดของคู่แข่งคอมไพเลอร์ที่ได้รับความนิยมซ้ำไปซ้ำมา ด้วยการพบบนอินเทอร์เน็ตโดยเฉพาะจากเครือข่ายโดยปกติแล้วลูกค้าและบนแช้ดมันกลับลงบนกระดาษหลายคนมีคุณสมบัติที่เป็นเอกลักษณ์
Wordbased กลายเป็นที่น่าขบขันมาก:
สิ่งนี้ได้ถูกรายงานไปแล้ว สิ่งเดียวที่มันคาดว่าทรัพยากรหนึ่งรั่วไหล โครงสร้างกึ่งภาษาในตำนานไม่สอดคล้องกันเนื่องจากไม่สามารถปรับได้ตั้งแต่แรก หากคุณเข้าสู่คอมพิวเตอร์ด้วยความสนุกสนานและสิ้นสุดลงรับคอมพิวเตอร์จริง! เด็กซน แดกดันเชิญพูดคุย สายเคเบิลขนาดเล็กถูกตำหนิสำหรับการเขียนโปรแกรมจริง ปาสคาลสิบปีต่อมา แต่ส่วนใหญ่ของผลิตภัณฑ์ของเราไม่ได้ค่อนข้าง subshell ทันสมัยเดียวกัน มีข้อโต้แย้งบางอย่างเกี่ยวกับว่ารายการนี้ทุกคนเป็นแม่ของ