Bu CR sorusundan esinlenmiştir (lütfen CR'ye göz attığınız için beni öldürmeyin)
spec
Bir kelimeyi yanlış yazmanın olasılıkları:
- Zamanın 1 / 3'ü çıktıyı değiştirmez
- 1/3 zaman rastgele bir karakter kaldırmak
- Zamanın 1 / 3'ü rastgele bir karakter kopyalıyor
Girişte belirli bir karakteri kaldırma / çoğaltma şansı, tüm karakterlerde aynı olmalıdır.
Birbirini takip eden iki karakter aynı ise (büyük / küçük harfe duyarlı), bunlardan birinin değiştirilme olasılığı bir karakter gibi aynı olmalıdır. Yani AA
( AA
ya A
da ya da AAA
) çıktılarının tümü aynı olasılığa sahip olmalıdır.
Girişte yalnızca basitlik için harfler bulunur.
Örnekler
İlk satır girilir, aşağıdaki satırların tümü olası yazım hatalarıdır. Her satırın çıkış olasılığı aynı olmalı, giriş örneklerde hariç tutulmalı, ancak yine de 1/3 çıkış olasılığı olmalıdır.
foo
fo
oo
ffoo
fooo
PPCG
PPC
PPG
PCG
PPPCG
PPCCG
PPCGG
foo
: ile : bir karakteri kaldırırsanız (-f) oo, f (-o) o ve fo (-o) olabilir. Bu yüzden fo
iki kat daha muhtemel olmalı oo
, ama her satırın eşit olasılığa sahip olduğunu söylüyorsunuz.
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.