แรงบันดาลใจจากคำถาม CR นี้ (โปรดอย่าฆ่าฉันสำหรับการเรียกดู CR)
สเป็ค
ความน่าจะเป็นของการสะกดคำคือ:
- 1/3 ของเวลาไม่เปลี่ยนเอาต์พุต
- 1/3 ของเวลาลบอักขระแบบสุ่ม
- 1/3 ของเวลาซ้ำอักขระแบบสุ่ม
โอกาสในการลบ / ทำซ้ำอักขระที่กำหนดในอินพุตควรเหมือนกันสำหรับตัวอักษรทั้งหมด
หากอักขระสองตัวที่ต่อเนื่องกันเป็นตัวเดียวกัน (ตัวพิมพ์เล็ก - ใหญ่) ความน่าจะเป็นของตัวละครหนึ่งตัวที่กำลังถูกดัดแปลงควรจะเหมือนกันกับตัวละครตัวนั้น AA
นั่นคือผลลัพธ์สำหรับ(ซึ่งเป็นAA
หรือA
หรือAAA
) ควรมีความน่าจะเป็นเหมือนกัน
ข้อมูลที่ป้อนจะประกอบด้วยตัวอักษรเพื่อความเรียบง่ายเท่านั้น
ตัวอย่าง
บรรทัดแรกคืออินพุตบรรทัดต่อไปนี้คือการสะกดที่เป็นไปได้ทั้งหมด แต่ละบรรทัดควรมีความน่าจะเป็นเหมือนกันกับการส่งออกอินพุตไม่รวมอยู่ในตัวอย่าง แต่ควรมีความน่าจะเป็นที่ 1/3 ของเอาต์พุต
foo
fo
oo
ffoo
fooo
PPCG
PPC
PPG
PCG
PPPCG
PPCCG
PPCGG
foo
: หากคุณลบตัวอักษรมันอาจกลายเป็น (-f) oo, f (-o) o และ fo (-o) ดังนั้นน่าfo
จะเป็นสองเท่าที่เป็นไปได้oo
แต่คุณบอกว่าทุกบรรทัดมีความน่าเป็นเท่า
If two consecutive characters are the same (case-sensitive), the probability of one of them being modified should be the same as if they are one character. I.e. the outputs for AA (which are AA or A or AAA) should all have the same probability.