"Ajuster les chiffres"
Sam a une idée "géniale" pour la compression! Pouvez-vous m'aider?
Voici un aperçu du schéma de compression de Sam. Prenez d'abord une représentation en base 10 de tout nombre naturel strictement inférieur à 2 ^ 16, et écrivez-le sous la forme d'une chaîne binaire sans zéros non significatifs.
1 -> 1 9 -> 1001 15 -> 1111 13 -> 1101 16 -> 10000 17 -> 10001 65535 -> 111111111111111
Remplacez maintenant tout groupe d'un ou plusieurs zéros par un seul zéro. En effet, le nombre est devenu plus maigre. Votre chaîne binaire ressemblera maintenant à ceci.
1 -> 1 -> 1 9 -> 1001 -> 101 15 -> 1111 -> 1111 13 -> 1101 -> 1101 16 -> 10000 -> 10 17 -> 10001 -> 101 65535 -> 111111111111111 -> 111111111111111
Maintenant, vous reconvertissez la chaîne binaire en une représentation de base 10, et la sortez dans n'importe quel format acceptable. Voici vos cas de test. Le premier entier représente une entrée et le dernier entier représente une sortie. Notez que certains nombres ne changent pas et peuvent donc être appelés "fit"
1 -> 1 -> 1 -> 1 9 -> 1001 -> 101 -> 5 15 -> 1111 -> 1111 -> 15 13 -> 1101 -> 1101 -> 13 16 -> 10000 -> 10 -> 2 17 -> 10001 -> 101 -> 5 65535 -> 1111111111111111 -> 111111111111111111 -> 65535 65000 -> 1111110111101000 -> 11111101111010 -> 16250
Vous pouvez utiliser n'importe quelle langue, mais veuillez noter que Sam déteste les failles standard. C'est le code golf donc le code peut être le plus court possible pour faire de la place aux numéros "compressés".
Remarque: Ce n'est PAS un schéma de compression acceptable. L'utiliser vous fera rapidement virer.
Citation-Needed: Je ne prends pas le crédit de ce concept. Cela vient du blog de @Conor O 'Brien ici voir cet OEIS de numéros d'ajustement. https://oeis.org/A090078
10000
?