Peanut Butter
N = 13 などの長さNの文字列を考えてみましょう。文字列にはN-1組の隣接文字があることに注意してください。ためにPeanut Butter
12対の最初でありPe
、第二はea
、最後ですer
。
ペアは主に異なる文字である場合は、文字列は、例えば、分厚い品質を持っていますchUnky
。
これらのペアがほとんど同じ文字である場合、文字列は滑らかな品質になりsssmmsss
ます。
ペアの合計数(N-1)に対する2つの異なる文字を持つペアの数の比率になるように、文字列のチャンクネスを定義します。
ペアの合計数(N-1)に対する2つの同一の文字を持つペアの数の比率になるように、文字列の滑らかさを定義します。
たとえば、Peanut Butter
同一の文字(tt
)のペアが1つしかないため、その滑らかさは1/12または0.0833で、チャンクネスは11/12または0.9167です。
空の文字列と1文字のみの文字列は、100%スムーズで0%チャンキーと定義されます。
チャレンジ
任意の長さの文字列を取り込んで、そのチャンクネスまたはスムーズ比を浮動小数点値として出力するプログラムを作成します。
- stdinまたはコマンドラインを介して入力を取得するか、文字列を取得する関数を作成できます。
- 入力文字列には、印刷可能なASCII文字のみが含まれていると想定できます(したがって、単一行です)。
- floatを標準出力に小数点以下4桁以上で印刷するか、関数を作成した場合に返すように選択できます。情報を伝えない小数点以下の場所は必要ありません。たとえば、の
0
代わりに使用でき0.0000
ます。 - 必要に応じて、チャンクネスまたは滑らかさを選択します。プログラムが出力するものを必ず言ってください。
バイト単位の最短コードが優先されます。
例
Peanut Butter
→チャンクネス:0.91666666666
、滑らかさ:0.08333333333
chUnky
→チャンクネス:1.0
、滑らかさ:0.0
sssmmsss
→チャンクネス:0.28571428571
、滑らかさ:0.71428571428
999
→チャンクネス:0.0
、滑らかさ:1.0
AA
→チャンクネス:0.0
、滑らかさ:1.0
Aa
→チャンクネス:1.0
、滑らかさ:0.0
!
→チャンクネス:0.0
、滑らかさ:1.0
[空の文字列]→チャンクネス:0.0
、滑らかさ:1.0