1

Coś dla miłośników łamigłówek. Jest sobie funkcja, której dziedziną jest zbiór wszystkich liczb całkowitych, 32-bitowych ($00000000...$FFFFFFFF). Zbiór wartości funkcji nie musi ograniczać się do 32 bitów, ale istotne jest tylko ustalone, 32-bitowe okno. Trzeba znaleźć tę funkcję, wiedząc, że podanym argumentom odpowiadają podane pod nimi wartości:

00 00 00 02
87 0B 0C 77

00 00 00 04
E3 BD BE 00

00 00 00 08
CC 55 25 5C

00 00 00 10
30 B2 4A 5E

00 00 00 20
B2 9E F5 ED

00 00 00 40
BE 48 FB 0A

00 00 00 80
05 53 BD FE

00 00 01 00
29 83 3B 1F

00 00 02 00
9B 9E 94 99

00 00 04 00
D2 EE 92 0F

00 00 08 00
F5 2F 36 01

00 00 10 00
45 94 FD 5E

00 00 20 00
C7 CC D2 6F

00 00 40 00
A4 88 0B 82

00 00 80 00
4C 31 76 1C

00 01 00 00
4F 39 E4 C6

00 02 00 00
0B D5 37 F2

00 04 00 00
33 6B E4 C5

00 08 00 00
52 1A 4F 8F

00 10 00 00
36 50 D0 7E

00 20 00 00
D8 9D B6 E6

00 40 00 00
96 E5 B6 21

00 80 00 00
03 37 AC 65

01 00 00 00
59 C9 B6 36

02 00 00 00
CD 62 92 04

04 00 00 00
6E CE 15 6F

08 00 00 00
22 DD 96 1F

10 00 00 00
DC 9F F3 06

20 00 00 00
25 F4 59 E2

40 00 00 00
F2 4D 90 FE

80 00 00 00
F6 31 DE 1D

Funkcja nie musi być opisana formułą matematyczną, wystarczy algorytm. Nie wiadomo, czy bajty uszeregowane są od najmłodszego, czy od najstarszego. Nagrodą może być, do wyboru, komputer Atari 130XE, stacja 1050, IDE+2, Antonia 4MB lub Sophia 2 - co kto lubi, plus sześciopak piwa. Czas nie jest jakoś szczególnie ograniczony, ale oczywiście im prędzej tym lepiej.

Ceterum censeo Germaniam esse delendam.

2

Ale wiesz, że takich funkcji jest rzędu (2^32)^(2^32)? Coś więcej o niej wiadomo?

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

3

skoro jedynie interesują Cię wartości w punktach które wyszczególniłeś, a te punkty są po prostu kolejnymi bitami, to jedyne co potrzebujesz enkoder bitu na liczbę (indeks) i tabelkę z 31 wpisami
jeśli chodzi o hdl, to syntezator rozpozna to jako kodowanie gorącą jedynką i uprości sprawę sam

przechodze na tumiwisizm

4 Ostatnio edytowany przez Simius (2020-10-12 13:15:30)

Gdyby to było tak proste, to bym głowy nie zawracał. Wartości odpowiadające kolejnym bitom są podane jako punkt odniesienia. W rzeczywistości każda 32-bitowa wartość jest istotna. Można by wykonać tablicę na 16GB SDHC, gdyby czas generacji pojedynczej wartości mierzyło się w mikrosekundach. Niestety, jest to bliżej sekundy.

Ceterum censeo Germaniam esse delendam.

5

perinoid napisał/a:

Ale wiesz, że takich funkcji jest rzędu (2^32)^(2^32)? Coś więcej o niej wiadomo?

Wiadomo tylko tyle, ile widać. Także to, że jeśli do rozważań potrzebna by była wartość dla jakiegoś konkretnego argumentu, da się ją uzyskać.

Ceterum censeo Germaniam esse delendam.

6

Ale wiesz, taką funkcję można trywialnie zdefiniować tak, że dla argumentów które podałeś zwraca podane wartości a dla pozostałych zera - i też będzie funkcja. Tylko jak rozumiem, nie o to chodzi. Czy wartości dla pozostałych argumentów są istotne, czy mogą być losowe? Czy też chodzi o odtworzenie działania jakiegoś encodera, dla którego te wartości charamterystyczne masz a reszty nie (ale on je generuje)?

PS. Jakie wartości są zwracana dla 00000000 i 00000001, bo nie ma ich na powyższej liście?

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

7 Ostatnio edytowany przez Simius (2020-10-12 13:22:17)

Wartości dla pozostałych są też istotne. Argument pojawia się losowo i należy odpowiedzieć prawidłową wartością. Wartości dla argumentów 0 i 1 zapomniałem wygenerować, nie pamiętam już nawet, dlaczego. Ale postaram się to uzupełnić w wolnej chwili. Chodzi właśnie o odtworzenie działania enkodera.

Ceterum censeo Germaniam esse delendam.

8

No to będzie cholernie trudno... :-(

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

9

wartości dla pozostałych są istotne, ale nie są podane, zbiór wejściowy ma 31 pozycji, rozmieszczonych tak rzadko, że nie sposób wyrokować czy funkcja jest nawet okresowo monotoniczna
nic tu nie da przybliżenie wielomianem czy jakikolwiek spline, skoro takie masz założenia brzegowe
stablicować można dla mniejszej ilości węzłów a między nimi dać dowolną interpolacje, ale to nadal nic nie znaczy
jeśli chodzi o enkoder, czy może raczej resolver to można wykorzystać jego właściwości - tylko na wyjściu spodziewałbym się wartości sin/cos prawdopodobnie ze znakiem

przechodze na tumiwisizm

10

Nie tyle trudno, co zwyczajnie jest za mało danych. Żeby móc cokolwiek powiedzieć jaki może być algorytm, potrzeba sporo więcej próbek, w których więcej bitów niż jeden jest ustawiony.

11 Ostatnio edytowany przez Simius (2020-10-12 14:47:46)

Na początku spodziewałem się, że funkcja będzie czymś w rodzaju wielomianu CRC - złożeniem obrotów i XORów, dlatego badałem to pojedynczymi ustawionymi bitami na kolejnych pozycjach, co mi się już w przeszłości w podobnym przypadku doskonale sprawdziło. Niestety, tym razem problem wygląda na trudniejszy. Ale większa liczba próbek jest też do uzyskania. W rozsądnych granicach. W najgorszym przypadku może to być mocny algorytm w rodzaju AES i wtedy to już kiszka, chyba, żeby odnaleźć tego autystycznego chłopca z "Kodu Merkury".

Ceterum censeo Germaniam esse delendam.

12

To może zdradzisz, co to za ustrojstwo?

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

13

klucz sprzętowy :P

Różne różności dla Atari i nie tylko - przydatne, bądź nie ale i tak warto zajrzeć...
http://atari.myftp.org  Atari - Power without price and necessary elements with some sh*t onboard
https://reversing.pl SSL enabled site