Vote | Print | Email Notification    
Author

[RISOLTO] Domino Puzzle - Calcoli

Last Update: 7/1/2024 8:07 PM
Post: 1,288
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/14/2024 9:57 AM
 
Modify
 
Delete
 
Quote

Ciao Leo
Avevo detto che dovevo ricontrollare il tutto!!!!😓😭
Dunque, nel ricopiare/rifare le macro per inviarle a te nel file allegato più sopra ad un certo punto entrambe hanno queste righe (in quella per 4 righe l'ultima riga NON è commentata):
'cicla 3 righe per volta
For i = 1 To UBound(mat) - 2
For j = i + 1 To UBound(mat) - 1
For k = j + 1 To UBound(mat)
'For y = 1 To UBound(mat)
e mi sono accorto di una "incongruenza", cioè nello scansire la matrice che contiene le "tessere" (cioè due numeri) nel primo e nel secondo ciclo mettevo delle riduzioni nel considerare l'ultimo valore: vedasi quel -2 nella variabile i e quel -1 nella variabile j. Ma mi sono detto: devo combinare TUTTE le tessere fra loro e, pertanto, ho eliminato le diminuzioni e tutte le variabili partono da 1. Voglio dire:
'cicla 3 righe per volta (vedasi l'ultima riga commentata che nel ciclo a 4 righe non è remmata)
For i = 1 To UBound(mat)
For j = 1 To UBound(mat)
For k = 1 To UBound(mat)
'For y = 1 To UBound(mat)
Ora, la differenza di codice mi dà due risultati: nel primo caso (sia col ciclo a 3 sia col ciclo a 4) = 256 mentre nel secondo caso = 1536

Mi rituffo nei controlli per arrivare ad una conclusione.
Ma, secondo te, è più corretta la prima impostazione (quella con la riduzione di cicli) ovvero quella più estesa?
Secondo me la seconda dovrebbe essere quella giusta perchè combina ogni tessera con TUTTE le altre.

Scusa per la cantonata che ho preso ☹. Ciao,
Mario
Post: 1,443
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/14/2024 10:18 AM
 
Modify
 
Delete
 
Quote

Re:
meno male che hai pure scoperto errori
non seguo al meglio il discorso ma avevo notato gia da solo una serie di cicli strani

Ma, secondo te, è più corretta la prima impostazione (quella con la riduzione di cicli) ovvero quella più estesa?

se con ciò ti riferisci al combinare quartine 4 a 4 invece che 3 a 3, ti ho già detto che per linearità e pulizia matematica il 4 a 4 è l'unico modo serio.
DOPOOOOO uno si puo' anche divertire a sperimentare ma almeno sai da quale verità oggettiva si parte
rileggi anche il mio penultimo post

LEO
https://t.me/LordBrum
Post: 1,444
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/14/2024 10:28 AM
 
Modify
 
Delete
 
Quote

TU HAI
For i = 1 To UBound(mat)
For j = 1 To UBound(mat)
For k = 1 To UBound(mat)
For y = 1 To UBound(mat)

a cui ho tolto il commento della y

ma per 4 a 4 dovrebbe essere
For i = 1 To UBound(mat) -3
For j = 1 To UBound(mat) -2
For k = 1 To UBound(mat) -1
'For y = 1 To UBound(mat)

dovrebbe essere così lo sviluppo di tot quartine prese 4 alla volta, non ti pare ?

LEO
https://t.me/LordBrum
Post: 1,445
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/14/2024 12:50 PM
 
Modify
 
Delete
 
Quote

se utile, uno specchietto in cui compaiono le somme, le quartine totali da esse generate, le combinazioni di partenza prendendo le quartine 4 a 4, i risultati togliendo solo i doppioni, oppure solo le tessere invertite, e i risultati intesi come numero di quadrati validi.
Il tutto secondo il mio programma che comunque sto ricontrollando.

LEO
https://t.me/LordBrum
Post: 1,446
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/14/2024 7:50 PM
 
Modify
 
Delete
 
Quote

Ciao
io direi che come PRIMA cosa dovresti impostare lo sviluppo delle quartine a 4 a 4, per avere la coscienza a posto
Poi sospendere altre condizioni per riferire il numero delle soluzioni 4 a 4
Infine ti suggerirei di controllare proprio la function di controllo, in cui con un'unica istruzione hai chiesto 2 cose diverse, e le separerei.
magari è giusta ma controllala lo stesso
sto facendo la stessa cosa con la mia sezione omologa.
Così sapresti anche quante sono le soluzioni senza doppioni e quante senza inversioni.
Provavo anche a trasportare il mio Basic in VBA ma è un caos
[Edited by L2018 6/14/2024 7:59 PM]

LEO
https://t.me/LordBrum
Post: 1,447
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/15/2024 11:58 AM
 
Modify
 
Delete
 
Quote

Ciao a tutti

credo di aver trovato il bandolo della matassa

LEO
https://t.me/LordBrum
Post: 1,448
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/15/2024 1:24 PM
 
Modify
 
Delete
 
Quote

Ciao a tutti
Premetterei che le soluzioni del Domino si trovano elettivamente con le combinazioni, peraltro da usare in modo "pulito", sia perchè la struttura dei quadrati viene definita in modo coerente comunque li si guardi, sia e soprattutto per motivi di velocità.
Una volta trovate le soluzioni, depurate da doppioni e inversioni, possiamo prendere un qualsiasi quadrato come il primo qui sotto.
Se scambiamo la prima con la seconda riga (quadrato 2°) il quadrato resta valido
Allo stesso modo resta valido se scambiamo le prime 2 colonne (quadrato 3°)
così come resta valido se lo ruotiamo di 90,180,270,360° (quadrato 4°)
Quindi le (24+24=)48 possibili permutazioni, ruotabili ciascuna 4 volte, determinano che per ogni soluzione combinatoria iniziale ce ne sono 192 alternative (quindi di origine permutativa).
Ma se si dovesse lavorare con le permutazioni pure di 16 celle tutte da 0 a 6, cioè 7^16, ci si troverebbe a partire da più di 33000 miliardi di possibilità.
Perciò questo tipo di problema non ci affanniamo a parlare di errori, bensì di chiarezza, ordine e pulizia riguardo a ciò che si cerca e ai metodi che si usano.

1°
4100 quadrato di partenza
1130
0221
0104

2°
1130 24 permutazioni verticali
4100 cambiando l'ordine delle righe
0221
0104

3°
1400 24 permutazioni orizzontali
1130 cambiando l'ordine delle colonne
2021
1004

4°
0014 4 rotazioni di 90°
1211
0230
4100

risultato (24+24)*4=192
ERGO ogni soluzione
ne implica 192
Ho ridotto all'osso la spiegazione perchè penso che le mie disquisizioni complete siano noiose.
Buon pranzo
[Edited by L2018 6/15/2024 10:23 PM]

LEO
https://t.me/LordBrum
Post: 1,449
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/15/2024 4:42 PM
 
Modify
 
Delete
 
Quote

Ciao Mario
rispondo MEGLIO alla tua domanda post #31

For i = 1 To UBound(mat)
For j = 1 To UBound(mat)
For k = 1 To UBound(mat)
'For y = 1 To UBound(mat)
così si ottiene un tentativo maldestro o parziale di permutazioni

For i = 1 To UBound(mat)
For j = 1 To UBound(mat)
For k = 1 To UBound(mat)
For y = 1 To UBound(mat)
così il tentativo maldestro è MENO maldestro, è una permutazioe completa

For i = 1 To UBound(mat)
For j = i+1 To UBound(mat)
For k = j+1 To UBound(mat)
For y = k+1 To UBound(mat)
così PUO' andare, e siamo entrati in ambito combinatorio

For i = 1 To UBound(mat) -3
For j = i+1 To UBound(mat) -2
For k = j+1 To UBound(mat) -1
For y = k+1 To UBound(mat)
così è la perfezione canonica ed estetica, e risparmi alcuni conteggi inutili
ma se non EVITI il complemento a 12 il tutto sarà sempre inquinato
---------------
l'istruzione combinata
If tes(ct1) = tes(ct2) Or tes(ct1) = Right(tes(ct2), 1) & Left(tes(ct2), 1) Then
l'ho verificata anche su di me, VA BENE
ma se tu separi il controllo doppioni da quello inversioni, oltre ad ottenere un dato in più, risparmi un po' di tempo totale

fammi sapere
[Edited by L2018 6/15/2024 4:55 PM]

LEO
https://t.me/LordBrum
Post: 1,289
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/17/2024 12:53 PM
 
Modify
 
Delete
 
Quote

Ciao Leo
Innanzi tutto scusa per il ritardo col quale rispondo.
Ho qualche perplessità circa i conteggi da te eseguiti.
Cerco di spiegare.
Abbiamo un domino (intendo un quadrato 4x4 le cui somme oriz e vert siano uguali).Da esso possiamo ricavare:
6 domini diversi invertendo le righe fra di loro
6 domini diversi invertendo le colonne fra di loro
3 domini diversi ruotando di 90°, 180° e 270°
Se facciamo la somma ariviamo a 16 domini diversi. Ma non finisce qui perchè ad ognuno dei domini ottenuti invertendo le righe ovvero ognuno dei domini ottenuti invertendo le colonne ovvero ognuno dei domini ottenuti con le rotazioni si può applicare l'inversione delle righe o delle colonne o delle rotazioni. Per ogni domino ottenuto avremmo =1+15*6*6*3 cioè 1621 domini. Di questi quanti saranno identici?
Sicuramente mi si sono "intrecciati i diti" mentre ragionavo. Puoi darmi conferma? Grazie.

Per quanto siguarda lo sdoppiamento della formula di cui al precedente post, impiega pressochè lo steso tempo (ma, come dici bene, avremmo un dato in più)
Ciao,
Mario
Post: 1,450
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/17/2024 4:13 PM
 
Modify
 
Delete
 
Quote

Ciao Mario
Innanzi tutto scusa per il ritardo col quale rispondo.
Non hai nulla di che scusarti, so che vai al mare, c'è la domenica, lo shopping, i nipotini e la Pivot di tuo figlio.

Ho qualche perplessità circa i conteggi da te eseguiti.
non dire perplessità, sii drastico, i miei sono sbagliati, è possibile, ma cerco di ripetermi anche se nel post apposito credevo di aver riassunto tutto

Cerco di spiegare.
Abbiamo un domino (intendo un quadrato 4x4 le cui somme oriz e vert siano uguali).Da esso possiamo ricavare:
6 domini diversi invertendo le righe fra di loro
6 domini diversi invertendo le colonne fra di loro
nei 2 suddetti concetti manca la descrizione PRECISA e COMPLETA del meccanismo, che cosà intendi per inversione ?

3 domini diversi ruotando di 90°, 180° e 270°
io direi che ne sono 4 perchè non possiamo trascurare la posizione di partenza 0°

4 righe di un quadrato, invertendole in modo che ognuna occupi righe diverse, sia da sola, che insieme ad altre, danno luogo a 24 possibilità, e si chiamano Permutazioni Semplici, cioè senza ripetizioni, cioè si cambia in tutti i modi possibili l'ordine degli elementi.
stesso dicasi per gli scambi colonnari, 24 permutazioni semplici, senza appunto ripetizioni.
e questo concetto è tanto più esente da equivoci per il fatto che righe o colonne sono tutte diverse fra loro.

Non sono io a dirlo, bensì l'assunto base delle permutazioni: il numero delle permutazioni semplici di un set di elementi è uguale al fattoriale del numero degli elementi
Quindi 4x3x2x1 = 24 permutazioni di 4 righe
se in un quadrato ci fossero 2 righe o colonne uguali, le permutazioni funzionerebbero lo stesso, ma per ipotesi ciò non è ammesso.
Allo stesso modo citiamo il fatto che se un set di elementi ha alcuni elementi ripetuti, lo sviluppo funziona comunque, MA se dallo sviluppo eliminassimo le ripetizioni, ci troveremmo in mano le Combinazioni, detto in prima battuta.

4 rotazioni angolari, da 0° a 360°, non interessa il numero dei movimenti ma la quantità di posizioni.

totale 24+24 = 48

Se facciamo la somma arriviamo a 16 domini diversi.

se vero quanto sopra arriviamo a 48 X 4 = 192 perchè ogni domino derivante da permutazione puo' essere ruotato 4 volte, ovviamente compresa la prima di nascita.
Ma se ad ogni primo quadrato aggiungiamo 3 rotazioni, al paese mio si dice che ne abbiamo 1 x 4, piuttosto che 1 + 3.
infatti prima sviluppiamo le permutazioni con le loro regole, poi le sommiamo, e poi le moltiplichiamo ognuna per 4.
Teniamo presente che le scemenze che dico sono solo pensate, ma non ho strumenti concreti che mi possano realizzare questi conteggi senza errori.

Ma non finisce qui perchè ad ognuno dei
domini ottenuti invertendo le righe ovvero
ognuno dei domini ottenuti invertendo le colonne ovvero
ognuno dei domini ottenuti con le rotazioni
si può applicare l'inversione delle righe o delle colonne o delle rotazioni.
Per ogni domino ottenuto avremmo =1+15*6*6*3 cioè 1621 domini. Di questi quanti saranno identici?
Ancora una volta noto un certo qual disordine contabile
l' 1 l'ho dimenticato, il 15 donde sbuca ? ah, già:6+6+3
ma 6 e 6 devono essere 24 e 24, e il 3 dovrebbe essere 4, ma solo una volta, perchè lo ripeti sia pure come 3 ?

Posso dirlo che non concordo ?
Un qualsiasi domino secondo quanto ho esposto darebbe luogo a 192 domino
Se poi un milione di domino abbiano ciascuno 192 figli, come posso io sapere senza strumenti le conseguenze relative alle uguaglianze ?
Posso solo dire che 7 valori da 0 a 6 realizzabili in 16 caselle del domino danno luogo in partenza a 7^16 possibili domino, dei quali come si puo' dire quanti sarebbero quelli con somma 12 ? Si parte da più di 33mila miliardi.
Prima di morire vorrei avere un pc quantistico.
Sul mio ho impostato il calcolo e tramite un cronometro che fa le proiezioni ho dedotto che solo il conteggio richiederebbe 12 ore, figuriamoci se io inserissi qualche misera insufficiente condizione....

Sicuramente mi si sono "intrecciati i diti" mentre ragionavo.
in qualche modo direi di sì, ma succede anche a me.

Puoi darmi conferma? Grazie.
Non posso confermarti, come ripeto, sia per mancanza di strumenti precisi di calcolo, sia perchè al posto di 6 e 6 ci va 24 e 24, per cui ripet-erei (-erei)che 48*4=192.
E mi sono affannato in qualche esempio poverino

1
4100 Domino
1130 base
0221
0104
2
1130 inversione
4100 prime due righe
0221
0104
3
0041 rotazione 90
1211 del Dom n. 2
0203
4100
4
0014 rotazione 90
1211 del Dom base
0230
4100
5
4010 ulteriore
1220 rotazione 90
0311 del D n. 4
0014
6
0014 ulteriore
0320 rotazione 90
1121 del D n. 5
4100

4100 ulteriore
1130 rotaz 90
0221 del D n. 6
0104
siamo tornati all'origine Domino base anche simile permutativamente al D n.2, ovvio ed evidente.

In definitiva, piuttosto che impazzire a rilevare i quadrati, se si avesse una serie grandissima di sole stringhe, che conosciamo, basterebbe ordinarle eliminando i doppioni per conoscere una buona empirica verità.
E volevo chiedertelo, insieme ad un altra chicchina.
Scusami e scusatemi la logorrea.
[Edited by L2018 6/17/2024 4:17 PM]

LEO
https://t.me/LordBrum
Post: 1,290
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/17/2024 7:26 PM
 
Modify
 
Delete
 
Quote

Ciao Leo
Non ho mai praticato il pugilato ma mi sento come un pugile "suonato".
Non mi ci raccapezzo più. Vedrò di inventarmi qualcosa con VBA per farmi "scrivere" dapprima TUTTI i domino possibili e, piano piano con le esclusioni.
Chiarisco (anche se mi dici che il ragionamento è errato). Sono partito da un domino con somma 5 (è più semplice).
Segno 1 nel pallottoliere.
Tenendo fermo il domino "originale", "scambio" ogni riga con tutte le altre. Ottengo 6 domino diversi dal primo.
Segno nel pallottoleire 1 + 6
Tenendo fermo il domino "originale", "scambio" ogni colonna con tutte le altre. Ottengo 6 domino diversi dal primo.
Segno nel pallottoliere 1 + 6 + 6
Tenendo fermo il domino "originale", "ruoto" di 90° per volta ed ottengo 3 domino diversi dal primo (a mio avviso 3 e non 4 perchè quando ruoto di 360° si ha di nuovo quello di partenza).
Segno nel pallottoliere 1 + 6 + 6 + 3 in totale 16 domino per ogni "figura"
Ma se considero ogni figura ottenuta come un originale (anche se, ovviamente, alcune figure sarebbe identiche) a quanto arrivo? Forse 16 x 16 cioè 256 da cui dedurre i domino identici (forse si arriverebbe al tuo 192?)?.
Mi rituffo nella Pivot (che io ho sempre odiato).
Ciao,
Mario

Post: 1,451
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/17/2024 8:55 PM
 
Modify
 
Delete
 
Quote

Re:
ahah, simpatica la similitudine del pugile, forse giocano fattori come nipotini, mare, shopping, pivot e il caldo, capita pure a me, ma un bel po' del tempo lo impiego anche solo pensando, invece di scrivere a vanvera, e tu mi insegni che la notte porta realmente consiglio.
Ritengo buono l'atteggiamento di scrivere prima i quadrati e dopo le altre condizioni, buono anche il 5, si fa prima.
Tutto il resto, perdonami, mi pare sbagliato.
Tralascio la terminologia del tener fermo, che non ha un senso, diciamo matematico, ma serve a spiegare.
Io sono ancora in attesa di sapere da te se conosci le combinazioni, le permutazioni, le disposizioni e derivati.
Mi dici di grazia cosa intendi per scambiare ?
supponendo di avere 4 righe (o colonne) numerate da 1 a 4, lo sapevi quanti sono gli scambi ? Eccoli, sono 24 e si chiamano permutazioni:
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
quindi non sono 6.
E' un po' come una corsa di 4 corridori con tutti e 24 i possibili ordini di arrivo.
Il resto non voglio ripeterlo per non addolorare te e gli altri.
Invece teniamo presente che questo gioco finora lo abbiamo impostato su base combinatoria (vedi for i...for j=i+1 ecc) con lo scopo facile di vedere i quadrati come se leggessimo un libro che per essere letto deve stare sempre in piedi e non capovolto (anche se potrebbe essere letto pur capovolto, da chi ne è capace).
Invece questo gioco secondo me ha una sua natura permutativa, (come se in certo senso volessimo poter leggere il libro da qualsiasi posizione) ma noi non possiamo permetterci il lusso di enumerare tutto.
Per fare un esempio, se io prendo le mie 64 combinazioni di somma 5, in teoria potrei riuscire a cavarne 12288, cioè 64 x 192.
PQM non solo ho impostato a parte un conteggio totale e assoluto di 16 caselle tutte da zero sei, ma ho appena trovato qualche trucco che mi riduce il tempo di almeno 3 volte, passando da 12 a 4 ore, ovviamente dovrò o dovrei farlo lavorare di notte.
Le risposte di tale routine sarebbero la verità completa sulle combinazioni del domino.

LEO
https://t.me/LordBrum
Post: 1,291
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/18/2024 12:41 PM
 
Modify
 
Delete
 
Quote

Ciao Leo
senza presunzione ma ribadisco che righe o colonne (intera riga o intera colonna) in un quadrato 4x4 si possono "scambiare" SOLO in 6 modi, e non c'entrano le permutazioni.
Supponi di avere questo domino (ripeto quadrato 4x4)
4 1 0 0
1 1 3 0
0 2 2 1
0 1 0 4

Puoi "scambiare" una riga con l'altra SOLO in 6 modi. Questi:
1 1 3 0 1 e 2
4 1 0 0
0 2 2 1
0 1 0 4

0 2 2 1 1 e 3
1 1 3 0
4 1 0 0
0 1 0 4

0 1 0 4 1 e 4
1 1 3 0
0 2 2 1
4 1 0 0

4 1 0 0 2 e 3
0 2 2 1
1 1 3 0
0 1 0 4

4 1 0 0 2 e 4
0 1 0 4
0 2 2 1
1 1 3 0

4 1 0 0 3 e 4
1 1 3 0
0 1 0 4
0 2 2 1

Altri 6 modi se "scambi" le colonne. Per scambio io intendo l'intera riga o colonna.
Resta inteso che per ognuno dei domino scambiati resta la possibilità di scambiare le colonne/righe e, sempre per ognuno, ruotarli.

Ciao,
Mario
Post: 1,452
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/18/2024 1:05 PM
 
Modify
 
Delete
 
Quote

Re:
Benissimo Mario
allora prendiamone uno a caso (dei miei)
1 1 3 0
0 2 2 1
0 1 0 4
4 1 0 0

non ho ruotato, nè scambiato colonne, ma ho scambiato la riga 2 con la riga 3 ED ANCHE la 1 con la 4, quindi NON è uno dei tuoi 6
posso fare un doppio scambio ? è vietato ?
cosa ne facciamo ? lo buttiamo ? come lo chiamiamo ? di che gruppo fa parte ? a che serve ?
con il numero 6 tu hai fatto le 6 COMBINAZIONI di 4 righe a 2 a 2
cioè hai imposto una TUA regola che non ha nulla a che vedere con la totalità dei possibili quadrati, nel senso che ne è solo una parte
Scusa, forse ho visto male riguardo quella che ho chiamato irregolarità dei 6, è facile confondersi in queste inversioni
Infatti come abbiamo già detto in altre occasioni, in ogni "gioco" bisogna concordare le regole
Io finora sapevo che le 4 regole erano Somma Or, Somma Ver, doppioni, inversioni, e ufficiosamente abbiamo usato la regola combinatoria per semplicità e brevità, onde conoscere i raggruppamenti delle quartine, raggruppamenti in quanto tali, senza occuparci dei modi in cui le righe possono essere disposte, è ciò è possibile con le Permutazioni, di cui il tuo 6 è solo una parte.
Ma da quando tu trovi sempre più quadrati, invece che sempre meno, ti ho detto che la totalità di questo gioco, doppioni e inversioni a parte, sta nelle Permutazioni, e NON nelle Combinazioni, che ne sono una parte.
4 elementi
combinati a 0 danno 1
combinati a 1 danno 4
combinati a 2 danno 6
combinati a 3 danno 4
combinati a 4 danno 1
Totale = 16
Invece le Permutazioni di 4 elementi sono 24, e ti ho dato l'elenco, cioè non sono soltanto il puro elenco dei modi di raggrupparli, ma comprendono anche tutti i possibili modi per disporli, perchè Comb e Perm insieme sono compresi nel più vasto campo delle Disposizioni.
E non stiamo neppure parlando di Ripetizioni...
[Edited by L2018 6/18/2024 3:41 PM]

LEO
https://t.me/LordBrum
Post: 1,453
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/18/2024 3:44 PM
 
Modify
 
Delete
 
Quote

con tutti questi discorsi obbligati, che peraltro mi rileggo, ogni tanto trovo mie inesattezze, come per esempio quella della presunta irregolarità dei tuoi 6 quadrati

LEO
https://t.me/LordBrum
Post: 1,454
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/18/2024 11:21 PM
 
Modify
 
Delete
 
Quote

be' ? nessuna novità ?

LEO
https://t.me/LordBrum
Post: 1,461
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/19/2024 4:00 PM
 
Modify
 
Delete
 
Quote

Buongiorno
avevo detto di aver impostato un calcolo totale, assoluto, integrale delle soluzioni Domino, in cui data la mole pazzesca di dati e calcoli, ho dovuto scegliere di volta in volta la SOMMA, e in più ho dovuto rinunciare a depurare il risultato da doppioni e inversioni
Per la somma 12, avendo impostato un contatore previsionale, ho calcolato che sarebbero necessarie circa 3 ore.
Allora ho pensato di esaminare la somma 4, di cui sappiamo che non dà soluzioni.
Il calcolo è stato praticamente istantaneo, ANCHE grazie ad un algoritmo oculato, e poichè avevo rinunciato a pulire doppioni e inversioni, mi ha dato la bellezza di 10147 Domino.
Questi dati li ho messi nella interessante routine di Mario, da me modificata allo scopo, e sono stati puntualmente TUTTI cancellati.

C.V.D.

non ho uno strumento ancora più sofisticato che mi permetta controlli totali su ogni aspetto, MA:

poichè il mio algoritmo in questo caso recita

FOR A = 0 to 6, per 16 caselle-volte, (predisposizione al calcolo permutativo) ho onestamente ragione di ritenere che per una qualsiasi somma le soluzioni siano quelle

totali, assolute, complete, integrali, permutative, cioè anche capovolte e ruotate, ed anche verniciate con l'Arcivernice.

BENE !
Mi appresto con calma fiduciosa ad esplorare le altre somme.

Non potevo esimermi dal postare almeno il risultato della somma 5
I Domino totali, senza pulizie, sono 40.176
Facendo le pulizie sono 1536 (che strano numero, mi pare di conoscerlo), mentre le mie combinazioni originarie sarebbero 64, e quelle originarie di Mario 256, ma anche qui, somma 5, e nelle altre somme, dobbiamo supporre che ci siano scambi e rotazioni.
Inoltre il fatto che 1536/64=24 secco, 1536/256=6 secco, e 1536/192=8 secco potrebbe essere un indizio interessante.
Sono contento nel complesso.
Certo il top sarebbe avere una routine veloce, che, dato un quadrato, lo rivolti come un calzino, ma soprattutto che sia capace di confrontare 2 serie di quadrati per vedere se combaciano, ma a sto punto, oltre all'insaziabilità si rischia la follìa, eppure qualcosa mi dice che Mario stia cercando di saziarsi di nascosto.... [SM=p4449749] [SM=p4449760]
---------------
Agg. 17:19

Somma=7
restituiti 373.696
puliti 76368
che, ripetiamo, comprendono tutte le possibilità
-----------
H. 18.25
Somma = 8
restituiti 883.777
puliti 671.041
--------------------
da somma 9 a 12 non potrò salvare su Excel per superamento righe, quindi quando eseguirò sarà formato testo.
Ciao
[Edited by L2018 6/19/2024 6:26 PM]

LEO
https://t.me/LordBrum
Post: 1,292
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/19/2024 9:38 PM
 
Modify
 
Delete
 
Quote

Ciao Leo
No, non sono sparito ma sono stato impegnato con le Pivot (magari fossero state delle ragazze alte 1,90 mt - e non c'entra il sessismo).
Prometto che, con la calma necessaria, rileggerò TUTTI i precedenti post per schiarirmi (o annebbiare ancora di più) le idee.
Intanto, rovistando nella mia "cassetta degli attrezzi" ho trovato i due file (molto datati) che allego.
Il primo (Calcolo_combinatorio) è solo una tabellina che spiega cosa è cosa e quante se ne possono ottenere (potrebbe essere un punto fermo)
Sul secondo (Calcolo-combinatorio), tutto con formule che "elenca" le combinazioni di 3 oggetti (colonne N:Q), vorrei attirare la tua attenzione sullo sviluppo dell'elenco.

Adesso torno alla partita in TV.
Ciao,
Mario

PS - Allego solo il primo per il secondo è "too-big". Troverò un altro modo.
Post: 1,293
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/19/2024 11:06 PM
 
Modify
 
Delete
 
Quote

Post: 1,464
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/19/2024 11:08 PM
 
Modify
 
Delete
 
Quote

Re:
Ciao, grazie degli omaggi, ma se il secondo non lo mandi non posso guardarlo.
il primo ce l'ho anche io da una ventina d'anni, lo conosco praticamente a memoria, visto che mastico questa materia dal lontano 1990, e la mastico in tutte le salse possibili.
Il totocalcio è il gioco delle Disposizioni con Ripetizione (1 o 2 o 3 simboli elevati a N. Partite)
Il lotto, enalotto, millionday, winforlife e simili sono tutti giochi a combinazione.
Nella pratica "quotidiana" raramente ho avuto da usare le varianti "con ripetizione" se non col totocalcio, di cui ho realizzato diversi algoritmi, tra i quali spicca quello di scrivere i quasi 5 milioni di colonne in circa mezzo secondo.
Poi non parliamo di lotto ed enalotto, dove ne ho "combinate" davvero di tutti i colori.
In definitiva tutti questi giochi sono proprio le materie che mi hanno insegnato la programmazione, altro che Clienti e Fornitori.
Ed è anche difficile che io mi sbagli applicando a tali problemi l'algoritmo sbagliato.
Posso anche non sapere a memoria una regola, una formula, un algo, ma lasciamelo dire, non ho mai toppato la soluzione di un problema, e ne ho a decine, ripetuti a loro volta decine di volte sempre per migliorarli in efficienza e velocità.
Certo possono capitare situazioni che richiedono l'uso di più algo insieme, ma sempre combinati con calma e precisione.
Un problema parte da alcuni dati e vuole una risposta.
Non è necessario sapere a pappagallo la formula o l'algo.
E' necessario e sufficiente che nella nostra mente ci figuriamo come un film il processo che quei dati devono subire e realizzarlo col codice, nel mio caso uso il Basic da 40 anni.
Non vorrei esagerare ma il BASIC l'ho imparato in pochi mesi, soprattutto senza manuali, poi ovviamente il manuale è stato importante per progredire, affinare, ma SEMPRE...la soluzione di cui non conoscevo la formula l'ho trovata organizzando il codice secondo logica, spesso bypassando routines incorporate che non conoscevo.
Perchè tutte ste chiacchiere ?
Semplicemente perchè la partita non mi interessa, e il gioco del Domino potrei dire di averlo concluso con l'ultima fase di cui sto parlando non solo da ieri.
Nella fattispecie prima che tu rilegga TUTTI i post, posso ribadire che se ogni cella delle 16 del Domino puo' ospitare un numero da 0 a 6, la matematica ci dice che le possibilità di partenza sono 7 alla 16ma potenza, poco piu di 33mila miliardi per tutte le somme, di più non ce ne sono, e sono PERMUTAZIONI senza ombra di dubbio.
Da questi deriva tutto.
Ma noi che siamo furbi abbiamo trasformato una macro permutatoria in un algoritmo combinatorio, solo per velocità, semplicità e facilità di lettura, come se volessimo guardare un monumento solo stando seduti a terra, ma i punti di vista sono diversi e noi ci accontentiamo di una parte, piu che sufficiente per giocare coi nipotini.
Ma se un nipotino siede alla tua sinistra vedrà il tuo Domino da una angolazione-rotazione diversa, o no ?
L'ultima versione del mio Domino parte quindi dai 33mila miliardi di sequenze, e organizzando opportunamente codice e richieste, riesce a darmi TUTTI i risultati esistenti, che posso scremare a piacimento, ma sempre sapendo ciò che faccio e senza confusione.
E tutto ciò in pochi secondi per le somme tra 5 e 9, mentre la somma 12, 11, 10, richiede fino a 3 ore di elaborazione, anche questo calcolato matematicamente, e per il mio pc.
Pensavo che tu guardassi l'Italia ma vedo che l'Italia gioca domani. Buon divertimento.

LEO
https://t.me/LordBrum
Post: 1,465
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/19/2024 11:18 PM
 
Modify
 
Delete
 
Quote

grazie del secondo file, che è grande a causa di formattazione ridondante, ma non capisco cosa dimostra
invece ti mando io un file umano, la SOMMA 4
sono circa 10000 quadrati solo come stringhe
eppure noi sappiano che somma 4 non esiste
QUINDI ?
a te la risposta

LEO
https://t.me/LordBrum
Post: 1,466
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/19/2024 11:32 PM
 
Modify
 
Delete
 
Quote

al tuo interessante file For_Leo aggiungi questa sub mal fatta ed esegui

VERIFICA
Sub Verifica()
    Dim inputString As String
    Dim coppia() As String
    Dim i As Long, j As Long, riga As Long, Ur As Long
    Dim message As String, k As Long
    Range("L:L").ClearContents
    Ur = Cells(Rows.Count, 6).End(xlUp).Row
    Range("n1").Value = Ur
    
    k = 1
    For riga = 2 To Ur
    inputString = Cells(riga, 6)
    coppia = Split(inputString, ",")
    
    ' Inizializza il messaggio
    'message = "Coppie uguali trovate:" & vbCrLf
    
    ' Confronta ogni coppia con le altre
    For i = 0 To UBound(coppia) - 1
        For j = i + 1 To UBound(coppia)
            If coppia(i) = coppia(j) Or coppia(i) = Right(coppia(j), 1) & Left(coppia(j), 1) Then
                'message = message & coppia(i) & " in posizioni " & i + 1 & " e " & j + 1 & vbCrLf
                Cells(riga, 12) = coppia(i) & " e " & coppia(j): k = 0
            End If
        Next j
    Next i
    Next
    If k Then Cells(1, 12) = "OK"
End Sub


LEO
https://t.me/LordBrum
Post: 1,294
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/20/2024 8:20 AM
 
Modify
 
Delete
 
Quote

Buongiorno
Perchè dici malfatta? A me sembra ottima. Complimenti.
Anzi ti dirò di più. L'ho provata sul file Steps e, dopo aver inserito la somma 12 in D1 e aver cliccato sui pulsanti Step1, Step2 e Step3. ho provato a cliccare il pulsante Step5 (saltato il 4). Dopo (col mio pc) 1'20'' mi ha elencato, come stringhe, 214196 possibilità. Dovrebbero (uso il condizionale ma sono quasi certo che la cifra è giusta) essere le stringhe per costruire i quadrati 4x4 per somma 12.
La tua macro, in un batter d'occhi, mi dice OK (ho spostato il W1 la risposta).
Ottima veramente.

Ciao,
Mario
Post: 1,467
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/20/2024 2:25 PM
 
Modify
 
Delete
 
Quote

Ciao
ti racconto un trucchetto che mi sono inventato per il Domino totale, e che potresti usare per situazioni difficili:
se ho molti cicli FOR, puo' darsi che io non sappia quanto tempo ci vorrà per elaborare tutto, ma la prova voglio farla e pure non voglio aspettare una vita (quando si dice: ho dovuto interrompere perchè non finiva mai...).

Moltiplico il numero del range del primo FOR X il range del secondo, magari puo' bastare, oppure anche per il range del terzo FOR.
Se questi FOR vanno da 0 a 6, la moltiplicazione di 3 FOR sarà 7 x 7 x 7 = 343.
Allora, dopo aver stabilito per esempio all'inizio che la variabile t=NOW, fra il terzo e il quarto FOR inserisco la seguente istruzione-segnalino che per 343 volte mi dice quanto tempo ci ha messo:

cells(riga,colonna)=(now-t)*343/3600:t=NOW

Significa che l'istruzione ti dice 343 volte quanto tempo ci ha messo per ognuna, lo moltiplica per 343 e lo divide per 3600 (secondi di un'ora -> risultato centesimale )oppure puo' dividere per 60, che ti darebbe i minuti, sempre centesimali.
Il t=now finale significa che ad ogni comunicazione riazzera il cronometro.
Dopo 2 o 3 segnalazioni, e visto che gli avvisi sono di valore costante, puoi fermare la macro sapendo già quanto tempo impiegherebbe. Carino, no ?

io ho impostato dopo il 4° FOR che equivale a 7 alla 4, cioè 2401, quindi la mia istruzioncella è

cells(riga,colonna)=(now-t)*2401/3600:t=NOW

Se durante l'elaborazione ci sono scritture su disco o altro, no problem, il segnale dirà comunque la verità.
----------------
[Edited by L2018 6/21/2024 2:03 PM]

LEO
https://t.me/LordBrum
Post: 1,468
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/22/2024 12:57 PM
 
Modify
 
Delete
 
Quote

Buongiorno a tutti
come avevo già detto, credo di essere pervenuto alla conclusione della disquisizione sul gioco del Domino, almeno dal mio punto di vista, ma mi piace aspettare ulteriori approfondimenti, se ce ne saranno.
non ho realizzato, tramite stringhe e quadrati, tutto quello che poteva esserlo, per motivi di stress, tempo dedicabile, tempi del computer ed anche errori di calcolo in corso d'opera
Certo ho inquadrato in modo definitivo la struttura ed i valori teorici delle richieste fatte dagli algoritmi
La pulizia di un quadrato dai suoi doppioni e inversioni è facilissima ed univoca, non la consideriamo.
Dobbiamo invece tener presente che il DominoPuzzle è un gioco a permutazione, per il semplice e ovvio motivo che se in ogni casella delle 16 possono comparire i numeri da 0 a 6, con possibili ripetizioni nella altre caselle, la matematica ci dice che in partenza il TOTALE è 7 valori elevato alla 16ma potenza, uguale a più di 33mila miliardi.
Il numero è spaventoso, ma la formula è inequivocabile.
Questo valore comprende TUTTO, tutti i quadrati di tutte le somme, sia puliti che non depurati da doppioni e inversioni, e con i quadrati scambiati con le loro righe e colonne, nonchè ruotati, in tutti i modi possibili.
All'inizio abbiamo considerato 28 tessere, poi 49, poi le quartine, 231 o meno a seconda delle somme chieste, e io stesso ho corso il rischio di far confondere ai calcoli la enumerazione di a,b,c,d con i valori reali delle facce delle tessere.
Ultimamente ho impostato il calcolo totale assoluto suddetto, ma i tempi non erano quelli umani previsti di circa 3 ore, bensì nettamente di più.
Quindi ho riesumato e revisionato il calcolo tramite quartine, ed ho avuto i risultati che già avevo ottenuto, per esempio 64 quadrati puliti per la somma 5, che per Mario sono 256
Ora invece di moltiplicare banalmente ogni risultato per 24 ho rimodificato l'algoritmo da combinatorio, che restituisce SOLO il tipo di gruppo, in permutativo, cioè ho fatto scambiare tra loro tutte e 4 le righe di un quadrato risultante, ma l'ho fatto solo in senso permutativo verticale, e come volevasi dimostrare ogni mio precedente risultato combinatorio è stato scambiato, cioè permutato, cioè moltiplicato per 24 volte, nel caso di somma 5; la risposta è 1536.
e di questo pubblico la tabella.
A detta tabella quindi mancano le soluzioni delle permutazioni orizzontali, e le rotazioni, per un risultato di 55914240 quadrati totali, ma tanto, conoscendo Mario, non giuro più su niente.
Buon pranzo
[Edited by L2018 6/22/2024 5:35 PM]

LEO
https://t.me/LordBrum
Post: 1,295
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/22/2024 5:50 PM
 
Modify
 
Delete
 
Quote

Ciao Leo
Se guardi il post #31 vedrai che quel numero (1536) c'è ma non ero sicuro.
Con tutto questo tira e molla, occuparsi d'altro (che conosci poco - maledette pivot) per il figlio, portare i nipotini al mare è sicuramente gratificante ma stanca assai, specie alla mia età.
Deduco che la strada è quella giusta ma devo dedicarvi un po' di tempo in più (che adesso mi sta mancando).
Complimenti per il tuo elaborato.
Ciao,
Mario
Post: 1,471
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/22/2024 5:58 PM
 
Modify
 
Delete
 
Quote

Re:
Marius44, 22/06/2024 17:50:

Ciao Leo
Se guardi il post #31 vedrai che quel numero (1536) c'è ma non ero sicuro.
Con tutto questo tira e molla, occuparsi d'altro (che conosci poco - maledette pivot) per il figlio, portare i nipotini al mare è sicuramente gratificante ma stanca assai, specie alla mia età.
Deduco che la strada è quella giusta ma devo dedicarvi un po' di tempo in più (che adesso mi sta mancando).
Complimenti per il tuo elaborato.
Ciao,
Mario


eh, ma io ho già comunicato che il 1536 lo avevo già visto fra i tuoi post, anche adesso ho riletto il post #31 ma non riesco a capire da quale tipo di codice deriva il tuo 1536, altrimenti risulta una semplice coincidenza
Troppa carne al fuoco fa venire l'uricemia e la gotta

LEO
https://t.me/LordBrum
Post: 1,472
Registered in: 4/2/2018
Location: PESCARA
Age: 76
Veteran User
EXCEL 2016 - SPREAD32
OFFLINE
6/22/2024 8:39 PM
 
Modify
 
Delete
 
Quote

Ciao
tempo fa, annaspando tra i tempi di elaborazione ho pensato di chiedere a GPT una soluzione VBA per il Domino
Non prevede la pulizia di doppioni ma implementa il Backtracking, nel quale non mi sono mai avventurato
L'ho avuta ma mi dà un errore di tipo Byref che io non so proprio correggere.
Qualcuno di voi vorrebbe provare a sistemarla ?
Vediamo

LEO
https://t.me/LordBrum
Post: 1,296
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/23/2024 6:29 AM
 
Modify
 
Delete
 
Quote

Ciao Leo
In questo punto della Function

Function Backtrack(Square() As Integer, Numbers() As Integer, R As Integer, C As Integer) As Boolean
Dim i As Integer
Dim NextR, NextC As Integer

sostituisci ll secondo Dim con questo
Dim NextR As Integer, NextC As Integer

Io l'ho provato e sembra funzionare, cioè non si blocca, ma dopo 5 minuti l'ho bloccato io perchè non vedevo alcun risultato.

Per quanto attiene al 1536, quel risultato riviene dal secondo ciclo, cicoè quello in cui TUTTE le variabili cominciano con 1 e avanzano fino alla fine della matrice.

Ciao,
Mario

[Edited by Marius44 6/23/2024 6:31 AM]
Post: 1,297
Registered in: 6/24/2015
Location: CATANIA
Age: 80
Veteran User
Excel2019
OFFLINE
6/23/2024 7:35 AM
 
Modify
 
Delete
 
Quote

Ciao Leo
Ho "ridimensionato" la macro alle nostre esisgenze.
Ho inserito una variabile pubblica all'inizio in modo da fargli leggere la somma che voglio io (ho indicato la cella F1)
Ho cambiato tutti i valori 12 (che quasi certamente avevi chiesto tu come somma) indicando la variabile pubblica.
Ho inserito in F1 la cifra 5. Ho lanciato la macro. In tempi più contenuti, ma sempre alti, mi ha mostrato il "magic square" ma è un po' particolare perchè mi dà tutti 0 (zero) con un 5 per riga/colonna. Non mi cerca tutte le possibilità, cioè 2 e 3, 4 e 1.

Nel pomeriggio vedrò di capirne di più e, eventualmente, come modificare il codice.
Ciao
Mario
[Edited by Marius44 6/23/2024 7:37 AM]
Vote:
New Thread
 | 
Reply
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Users | Search | Log In | Register | Admin
Tutti gli orari sono GMT+01:00. Adesso sono le 7:30 AM. : Printable | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com