このCRの質問に触発されました (CRの閲覧で私を殺さないでください)
スペック
単語のスペルミスの確率は次のとおりです。
- 1/3の時間は出力を変更しません
- 1/3の時間でランダムな文字が削除されます
- 1/3の時間がランダムキャラクターを複製する
入力の特定の文字を削除/複製する機会は、すべての文字で同じでなければなりません。
2つの連続する文字が同じ場合(大文字と小文字が区別されます)、そのうちの1つが変更される確率は、1文字である場合と同じである必要があります。つまり、AA
(AA
またはA
orであるAAA
)の出力はすべて同じ確率になるはずです。
簡単にするため、入力には文字のみが含まれます。
例
最初の行が入力され、次の行はすべてスペルミスの可能性があります。各行の出力確率は同じである必要があります。例では入力は除外されていますが、出力の確率は1/3のままです。
foo
fo
oo
ffoo
fooo
PPCG
PPC
PPG
PCG
PPPCG
PPCCG
PPCGG
それはいい挑戦ですが、各行が同じ確率で出力される場合、それは単語が同じままであるという1/3のチャンスではないという意味ではありませんか?
—
バリューインク
@ValueInk大丈夫、それは例の欠陥です。修正させてください
—
-Downgoat
待って、各行が同じ確率で出力される場合、文字の分布は均一ではないでしょうか?たとえば、
—
デウソビ
foo
:を使用すると、文字を削除すると(-f)oo、f(-o)o、およびfo(-o)になります。したがってfo
、の2倍の可能性oo
がありますが、すべての行の確率が等しいと言います。
@Deusoviこれを説明する段落全体がありますが、念のためここにコピーします
—
-edc65
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.
@DJMcMayhemいいえ、通常、複数の文字のつづりが間違っています; _;
—
ダウンゴート