Witam, tytuł trochę chaotyczny ale postaram się opisać tutaj dokładnie o co mi chodzi.
Kilka lat temu tworzyłem niewielkie oprogramowanie do prac z API allegro i tam występował bardzo ciekawy system przechowywania informacji o wybranej konfiguracji tylko za pomocą jednej liczby, wyglądało to tak:
Dana liczba jest sumą kolejnych potęg liczby dwa 2^0=1, 2^1=2, 2^2=4, 2^3=8, 2^4=16 ITD
Jeżeli zmienną jest liczba 1 to jej konfiguracja składa się z 1 (2^0)
Jeżeli zmienną jest liczba 3 to jej konfiguracja składa się z 1 (2^0) + 2 (2^1)
Jeżeli zmienną jest liczba 5 to jej konfiguracja składa się z 1 (2^0) + 4 (2^2)
Jeżeli zmienną jest liczba 6 to jej konfiguracja składa się z 2 (2^1) + 4 (2^2)
Jeżeli zmienną jest liczba 7 to jej konfiguracja składa się z 1 (2^0) + 2 (2^1) + 4 (2^2)
Jeżeli zmienną jest liczba 9 to jej konfiguracja składa się z 8 (2^4) + 1 (2^0)
Jeżeli zmienną jest liczba 10 to jej konfiguracja składa się z 8 (2^4) + 2 (2^1)
Jeżeli zmienną jest liczba 15 to jej konfiguracja składa się z 8 (2^4) + 1 (2^0) + 2 (2^1) + 4 (2^2)
Każda potęga może wystąpić TYLKO JEDEN RAZ co uniemożliwia powstania błędu typu 6 = 3 x 2 (2^1)
Kiedyś właśnie jak pisałem ten program znalazłem nazwę tego algorytmu / funkcji oraz wzór, niestety było to lata temu i od tamtej pory nie korzystałem z tej techniki, a z racji iż nie jestem dobry w zapamiętywaniu nazw nie potrafię sobie teraz przypomnieć.
Może ktoś z szanownych forumowiczów kojarzy jaki algorytm / funkcja wykorzystuje w/w przykłady.