Étant donné une liste de chaînes, triez la liste sous forme de nombres sans savoir quelle base est utilisée. Les valeurs des chiffres sont également inconnues (il est possible que '1'> '2').
Étant donné que les valeurs des chiffres sont inconnues, utilisez la loi de Benford (ou la loi du premier chiffre) pour déterminer la valeur relative des chiffres. Pour les distributions qui suivent la loi de Benford, les chiffres de faible valeur apparaissent plus fréquemment comme chiffre de tête que les chiffres de valeur supérieure.
Règles
- C'est du code-golf
- La liste des chaînes peut provenir d'une source de votre choix (stdin, variable, fichier, utilisateur, etc.)
- Les chaînes sont limitées aux caractères ASCII.
- Les caractères qui n'apparaissent pas comme un caractère de tête ont les valeurs les plus élevées. (supposez qu'il n'y a pas de zéros et triez strictement par fréquence de tête.)
- Les caractères qui apparaissent en tant que chiffres de tête le même nombre de fois que les autres caractères sont pondérés de manière égale.
Exemple
Non trié
['c','ca','ac','cc','a','ccc','cx','cz','cy']
Triés
['c','a','cc','ca','cz','cy','cx','ac','ccc']
Remarque: Dans l'exemple, 'cz', 'cy'et 'cx'peut apparaître comme la 5e, 6e et 7e éléments dans un ordre quelconque étant donné que les chiffres 'x', 'y'et 'z'sont également pondérés.