文字列のリストが与えられた場合、どのベースが使用されているかを知らずにリストを数字としてソートします。数字の値も不明です('1'>の可能性があります'2')。
桁の値は不明であるため、ベンフォードの法則(または最初の桁の法則)を使用して、桁の相対値を決定します。ベンフォードの法則に従う分布の場合、低い値の数字は高い値の数字よりも頻繁に先行数字として表示されます。
ルール
- これはコードゴルフです
- 文字列のリストは、選択したソース(stdin、変数、ファイル、ユーザーなど)から取得できます。
- 文字列はASCII文字に制限されています。
- 先行文字として表示されない文字は、最高値を持ちます。(ゼロがないと仮定し、先行周波数で厳密にソートします。)
- 他の文字と同じ回数だけ先行数字として表示される文字は、均等に重み付けされます。
例
未分類
['c','ca','ac','cc','a','ccc','cx','cz','cy']
ソート済み
['c','a','cc','ca','cz','cy','cx','ac','ccc']
注:例では、'cz'、'cy'および'cx'数字ので、任意の順序で5番目、6番目と7番目の要素として表示することができ'x'、'y'そして'z'均等に重み付けされます。
「文字列はASCII文字に制限されています。」この例では、英数字のみを示しています(実際にはアルファベット文字のみ)。すべてのASCII文字、または単に[0-9a-zA-Z]を意味し、小文字は大文字と同じか異なるかをカウントしますか?
—
ジョシュアテイラー
すべてのASCII文字をサポートする必要があり、大文字と小文字は異なります。
—
リナント14年