„Dopasuj liczby”
Sam ma „genialny” pomysł na kompresję! Możesz pomóc?
Oto podsumowanie schematu kompresji Sama. Najpierw weź podstawową reprezentację 10 dowolnej liczby naturalnej ściśle mniejszej niż 2 ^ 16 i zapisz jako ciąg binarny bez zer wiodących.
1 -> 1 9 -> 1001 15 -> 1111 13 -> 1101 16 -> 10000 17 -> 10001 65535 -> 111111111111111
Teraz zamień dowolną grupę jednego lub więcej zer na pojedyncze zero. Wynika to z faktu, że liczba się zmniejszyła. Twój ciąg binarny będzie teraz wyglądał tak.
1 -> 1 -> 1 9 -> 1001 -> 101 15 -> 1111 -> 1111 13 -> 1101 -> 1101 16 -> 10000 -> 10 17 -> 10001 -> 101 65535 -> 111111111111111 -> 111111111111111
Teraz konwertujesz ciąg binarny z powrotem do reprezentacji podstawowej 10 i wyprowadzasz go w dowolnym akceptowalnym formacie. Oto twoje przypadki testowe. Pierwsza liczba całkowita reprezentuje dane wejściowe, a ostatnia liczba całkowita reprezentuje dane wyjściowe. Pamiętaj, że niektóre liczby się nie zmieniają, dlatego można je nazwać „dopasowanym”
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 -> 1111111111111111 -> 65535 65000 -> 1111110111101000 -> 11111101111010 -> 16250
Możesz używać dowolnego języka, ale pamiętaj, że Sam nienawidzi standardowych luk. To jest kod golfowy, więc kod może być tak krótki, jak to możliwe, aby zrobić miejsce dla „skompresowanych” liczb.
Uwaga: To NIE jest akceptowalny schemat kompresji. Korzystanie z tego spowoduje natychmiastowe zwolnienie.
Potrzebne cytowanie: Nie przypisuję sobie tej koncepcji. Pochodzi z bloga @Conor O 'Brien tutaj zobacz ten OEIS pasujących numerów. https://oeis.org/A090078
10000
?