Sortieren Sie die Liste anhand einer Liste von Zeichenfolgen als Zahlen, ohne zu wissen, welche Basis verwendet wird. Die Werte der Ziffern sind ebenfalls unbekannt (es ist möglich, dass '1'> '2').
Da die Werte von Ziffern unbekannt sind, verwenden Sie das Benford-Gesetz (oder das Gesetz der ersten Ziffer), um den relativen Wert der Ziffern zu bestimmen. Bei Verteilungen, die dem Benfordschen Gesetz folgen, werden Ziffern mit niedrigeren Werten häufiger als führende Ziffern angezeigt als Ziffern mit höheren Werten.
Regeln
- Das ist Code-Golf
- Die Liste der Zeichenfolgen kann von einer Quelle Ihrer Wahl stammen (stdin, Variable, Datei, Benutzer usw.).
- Zeichenfolgen sind auf ASCII-Zeichen beschränkt.
- Zeichen, die nicht als führende Zeichen erscheinen, haben die höchsten Werte. (Nehmen wir an, dass es keine Nullen gibt und sortieren Sie streng nach der führenden Frequenz.)
- Zeichen, die als führende Ziffern so oft vorkommen wie andere Zeichen, werden gleich gewichtet.
Beispiel
Unsortiert
['c','ca','ac','cc','a','ccc','cx','cz','cy']
Sortiert
['c','a','cc','ca','cz','cy','cx','ac','ccc']
Hinweis: In dem Beispiel 'cz', 'cy'und 'cx'wie der 5., 6. und 7. Elemente in beliebiger Reihenfolge , da die Ziffern erscheinen können 'x', 'y'und 'z'sind gleich gewichtet.