Newsgroup: it.hobby.enigmi
Titolo: cubo binario completo

Per ogni intero positivo N e' possibile sistemare gli interi
da O a N^2-1 in una matrice quadrata NxN.
Il caso N=4 e' particolare perche' 2^4 = 4^2 e' l'unica
soluzione di x^y=y^x, per distinti naturali x e y.
Come risultato, noi possiamo espandere ogni numero da 0-15
in numeri binari di 4 bits, collocandoli su livelli separati
a formare un cubo 4x4x4.
Consideriamo ad esempio la matrice:
14  03  11  04
10  09  07  15
02  08  00  01   (a)
12  13  06  05
I quattro livelli binari sono:
  2^0        2^1        2^2        2^3
0 1 1 0    1 1 1 0    1 0 0 1    1 0 1 0
0 1 1 1    1 0 1 1    0 0 1 1    1 1 0 1
0 0 0 1    1 0 0 0    0 0 0 0    0 1 0 0
0 1 0 1    0 0 1 0    1 1 1 1    1 1 0 0
Considerando i quattro livelli come sovrapposti, e leggendo
i bytes dal basso verso l'alto otteniamo i numeri visti in
(a), ovviamente leggendo dall'alto verso il basso si
leggeranno sempre gli interi 0-15 disposti diversamente, ad
es. 1110 = 14 diventa 0111=7.
Possiamo notare ora che leggendo il cubo per righe
(destra-sinistra) si hanno sempre gli interi 0-15, difatti
traducendo in decimale:
06  14  09  10
07  11  03  13
01  08  00  04
05  02  15  12
Purtroppo la stessa cosa non si ottiene leggendo per colonne
(fronte-retro del nostro cubo):
00  13  12  07 
14  08  13  04
09  01  05  13
13  07  08  04
dove appaiono quattro 13, due 8, e due 4.
Il cubo binario appena visto e' completo solo per le quattro
direzioni nord, sud, alto, basso, fallendo invece per le
direzioni est, ovest.
Esiste un cubo binario 4x4x4 che generi tutti gli interi da
0 a 15 leggendo i 4 bit da tutte le sue 6 facce ?
:) dario

 :) dario
Non sono arrivato a molto ma visto che nessuno risponde riferisco le mie
(povere) conclusioni.
Se esiste soluzione non lo so ma sicuramente non la riesco a trovare. Ho
fatto andare il computere per un'ora e mezzo ma non da segni di vita e cosi
interrompo il tutto.
Ho operato in questo modo, prendo la matrice iniziale
a  b  c  d
e  f  g  h
i  l  m  n
o  p  q  r
Ora valuto tutte le possibilita ma tagliando un po[evidentemente troppo poco
perche non arrivo a nessun risultato] i rami secchi in questo modo:
per la simmetria pongo che lo 0 sia in posizione a o b o f, faccio tre cicli
separati per a=0, b=0, f=0. Per il primo ciclo e per il terzo pongo l'1 solo
sulla parte triangolare superiore [sempre per la simmetria].
Fallendo la metodologia forza-brutista ho provato a cercare una situazione
per via "ingegnosa"[se cosi si puo dire].
Ho notato che nella matrice non possono stare nella stessa colonna e/o riga
le seguenti quaterne:
I) 0-1-2-3
II) 4-5-6-7
III)8-9-10-11
IV) 12-13-14-15
infatti ad occhio si vede che leggendo per righe si avrebbe, sul primo
livello un doppio zero od un doppio uno.
Per motivi analoghi, considerando la lettura dall'alto verso il basso, non
possono stare nella stessa riga e/o colonna le quaterne:
I)0-4-8-12   (sono i numerali che finiscono con 00)
II)1-5-9-13  (sono i numerali che finiscono con 01)
III)2-6-10-14(sono i numerali che finiscono con 10)
IV)3-7-11-15 (sono i numerali che finiscono con 11)
Ragionamenti identici fatti per i due bit intermedi mi portano ad escludere
che siano su una stessa riga/colonna le quaterne:
I)0-1-8-9  ( 00 intermedio)
II)2-3-10-11 ( 01 intermedio)
III)4-5-12-13 ( 10 intermedio)
IV) 6-7-14-15 ( 11 intermedio)
Avrei voluto inserire queste condizioni nel programma gia pronto ma non
saprei come fare ed in piu penso che lo appesantirei troppo.
Le uniche condizioni che riesco a tirare fuori sono queste, probabilmente un
po poco ma chissa se unite a considerazioni di qualche altro solutore si
arrivi a qualcosa di buona ("Testa per una contadina" docet).
GaS
P.S.: Per Dario: sinceramente aspetterei un chiarimento sul thred "in
montagna".