Piccolo costruttore di ortogonali

« Older   Newer »
  Share  
icon1  view post Posted on 10/9/2011, 09:38     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


^_^ Ciao a tutti .

Quì possiamo sviluppare qualche idea con
quel filo di tranquillità necessaria.

Si sta cercando di creare una piccola utilità che:
- sviluppi delle chiavi
- che a loro volta generano delle colonne con copertura uniforme per
il principio della rotazione circolare.

Siamo ospiti di Carlo (softCIT, Prepo, Huntercity....sempre lui :lol: )

Brillante programmatore che con molta buona volontà
sta dedicando il suo già risicato tempo libero a questa
mia ulteriore ricerca con lo sviluppo di un primo abbozzo
di tool realizzato in excel scaricabile più avanti nel post.


Edited by TarulliG - 10/9/2011, 12:32
 
Top
icon1  view post Posted on 10/9/2011, 10:17     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


:) partiamo da zero.

Una chiave in decina , per un ridotto di 20 numeri, può
partire da un valore di 10 cosi composto:
1+1+1+1+1+1+1+1+1+1
che tradotto diviene:

01 02 03 04 05 06 07 08 09 10

ossia partendo dal primo numero che è 1 , ad ogni numero
successivo gli aggiungo ancora 1 (diviene 2) e cosi via sino a 10.

A questa prima decina cosi costruita
devo aggiungere semplicemente il valore + 1 in colonna verticale
a tutti gli elementi sino ad arrivare a 20 decine.
01 02 03 04 05 06 07 08 09 10
02 03 04 05 06 07 08 09 10 11
03 04 05 06 07 08 09 10 11 12
04 05 06 07 08 09 10 11 12 13
ecc.ecc..
Ma una chiave in decina con valore 10 copre male l'integrale ,
crea un numero di colonne superiore a quelle necessarie.

Si parte ponendosi delle domande per la costruzione delle chiavi:
- Quante sono le chiavi in base a quello che voglio realizzare ?
- Come calcolare il valore delle chiavi (la più idonea a quel ridotto)

e passando alla costruzione del programmino si continua con:
- Costruisco le chiavi in un file
- Converto le chiavi in sistema
- Verifico la migliore copertura

- Verifica copertura rimanente (se c'è) e chiusura del ridotto.

Più avanti leggerete che per il 20,10,7,10 (dove su 20 numeri potete ottenere al massimo 20 colonne)
la chiave 20 (1 1 1 1 2 2 5 1 3 3) lascia scoperte 6336/su 184756 decine componenti l'integrale
e si traduce

01 02 03 04 06 08 13 14 17 20
02 03 04 05 07 09 14 15 18 01
03 04 05 06 08 10 15 16 19 02
04 05 06 07 09 11 16 17 20 03
05 06 07 08 10 12 17 18 01 04
06 07 08 09 11 13 18 19 02 05
07 08 09 10 12 14 19 20 03 06
08 09 10 11 13 15 20 01 04 07
09 10 11 12 14 16 01 02 05 08
10 11 12 13 15 17 02 03 06 09
11 12 13 14 16 18 03 04 07 10
12 13 14 15 17 19 04 05 08 11
13 14 15 16 18 20 05 06 09 12
14 15 16 17 19 01 06 07 10 13
15 16 17 18 20 02 07 08 11 14
16 17 18 19 01 03 08 09 12 15
17 18 19 20 02 04 09 10 13 16
18 19 20 01 03 05 10 11 14 17
19 20 01 02 04 06 11 12 15 18
20 01 02 03 05 07 12 13 16 19

ed è quella che dà la massima copertura possibile

Edited by TarulliG - 13/6/2014, 19:34
 
Top
icon1  view post Posted on 10/9/2011, 10:37     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


Primo passo ben sviluppato da NINO.

Come calcolare il numero delle possibili chiavi per la rotazione delle colonne in decine.

Nota: per chiave intendiamo qui la somma delle differenze dei 10 numeri della decina (ognuno con il precedente), ovvero anche il valore dell'ultimo numero (posto il primo = 1)

Di seguito riporto il numero di casi relativo ad ogni chiave (occorre fare la somma di ogni riga):

Chiave . C(10,0) C(10,1) C(10,2) C(10,3) C(10,4) C(10,5) C(10,6) C(10,7) C(10.8) C(10,9) C(10,10)
-------- . -------- --------- --------- -------- --------- --------- --------- --------- --------- --------- ---------
. 10 ........* 1
. 11 ........* 0 .......*1
. 12 ........* 0 .......*1 .......*1
. 13 ........* 0 .......*1 .......*2 ........*1
. 14 ........* 0 .......*1 .......*3 ........*3 ........ *1
. 15 ........* 0 .......*1 .......*4 ........*6 ......... *4 .......*1
. 16 ........* 0 .......*1 .......*5 .......*10 ...... *10 .......*5 ........ *1
. 17 ........* 0 .......*1 .......*6 .......*15 ...... *20 .....*15 ........ *6 .......*1
. 18 ........* 0 .......*1 .......*7 .......*21 ...... *35 .....*35 ....... *21 ......*7 ..... *1
. 19 ........* 0 .......*1 .......*8 .......*28 ...... *56 .....*70 ....... *56 .....*28 .....*8 .......*1
. 20 ........* 0 .......*1 .......*9 .......*36 ...... *84 .....*126 .... *126 ....*84 .... *36 .....* 9 .....*1

Si ricorda che per C si intende il numero di combinazioni:
C(10,0) = C(10,10) = 1
C(10,1) = C(10,9) = 10
C(10,2) = C(10,8) = 10*9/2 = 45
C(10,3) = C(10,7) = 10*9*8/(3*2) = 120
C(10,4) = C(10,6) = 10*9*8*7/(4*3*2) = 210
C(10,5) = 10*9*8*7*6*5/(5*4*3*2) = 252

Ad esempio, la chiave a somma 14 è costituita da:
0 + 1*10 + 3*45 + 3*120 + 1*210 = 715 casi

Per cui poniamo le basi per il caso da noi più studiato del 20,10,7,10.


Edited by TarulliG - 6/1/2012, 22:36
 
Top
icon1  view post Posted on 10/9/2011, 11:23     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


Il primo abbozzo di programma scaricabile realizzato in excel.

In prima pagina le 220 chiavi utili al 20,10,7,10
in seconda pagina in alto a destra, evidenziato dal giallo, il riporto di una delle 220 chiavi.
Appena sotto le 20 decine costruite in automatico con quella chiave.

Manca in questa seconda pagina (quella chiamata 20,10,7,10) la possibilità
tramite il menù a tendina di inserire una delle 220 chiavi presenti in
prima pagina , quella appunto nominata chiavi.

Andrebbe bene anche una semplice casella dove scrivo il numero della chiave
ed automaticamente richiama una delle 220 chiavi per il calcolo.

Le verifche al momento sono solo manuali con programma esterno
di verifica ridotto (quello che più vi aggrada).



Download attachment
crea_matrici2.rar ( Number of downloads: 427 )

 
Top
Prepo
view post Posted on 10/9/2011, 13:39     +1   -1




Domanda per Nino/Gianni

. 13 ........* 0 .......*1 .......*2 ........*1

come viene costruita questa sequenza?

in generale il triangolo con le sequenze come si costruisce?

Carlo
 
Top
Nino …..
view post Posted on 10/9/2011, 14:00     +1   -1




CITAZIONE (Prepo @ 10/9/2011, 14:39) 
Domanda per Nino/Gianni

. 13 ........* 0 .......*1 .......*2 ........*1

come viene costruita questa sequenza?

in generale il triangolo con le sequenze come si costruisce?

Carlo

Triangolo di Tartaglia (cioè coefficienti binomiali), escludendo la prima colonna banale di v=k cioè chiave= 10 numeri

(v + 1) .................................. 1
(v + 2).............................. 1 ......1
(v + 3)...........................1 ......2 ......1
(v + 4)........................1 ....3 ...... 3 ......1
(v + 5).....................1....4 ......6.......4 ......1
ecc

Nino

Edited by TarulliG - 6/1/2012, 22:36
 
Top
Prepo
view post Posted on 10/9/2011, 14:12     +1   -1





ficoooooo

PascalTriangleAnimated2

http://it.wikipedia.org/wiki/File:PascalTr...leAnimated2.gif

ps: scusate se cambio lo skin ma cosi è più leggibile :-)

Edited by TarulliG - 6/1/2012, 22:37
 
Top
Nino …..
view post Posted on 10/9/2011, 14:31     +1   -1




CITAZIONE (TarulliG @ 10/9/2011, 15:05) 
comunque:
13 ........* 0 .......*1 .......*2 ........*1
diviene
0x1 + 1x10 + 2x45 + 1*120 = 1+10+90+120 = 220 chiavi
ed anche io chiedo a Nino come a costruito quella tabella. :blink:

Allora, ricapitolando, abbiamo una chiave che, ragionevolmente, se v è il numero dei numeri del sistema e k il numero dei numeri di ogni colonna, può andare da k a v.

Se la chiave è k, ovviamente, c'è un solo caso (1,1,1,1,1,1,1,1,1,1...)

Negli altri casi, le possibilità si determinano con il triangolo di Tartaglia (che è poi la mia tabella), moltiplicando i coefficienti per le combinazioni da 1 a (chiave-k)! e poi sommando.
Es. chiave 16 per le decine: i coefficienti sono 1-5-10-10-5-1 che vanno singolarmente moltiplicati per le combinazioni da C(10,1) a C(10,6)

 
Top
Prepo
view post Posted on 10/9/2011, 21:57     +1   -1




l'ultimo post di Nino purtroppo per me non l'ho capito :-( mi mancano le basi.

intanto vi allego due giocattolini che ho trovato su internet.

uno serve per creare la piramide di Tartaglia, l'altro per sviluppare le Disposizioni Semplici, Permutazioni, Combinazioni Semplici, Permutazioni con Ripetizioni :-)

la cosa buona è che entrambi sono forniti con i sorgenti per cui potrò studiarli e utilizzarli per creare le chiavi

La mia idea di base era quella di usare le Permutazioni con Ripetizioni e poi filtrare in base alla somma della chiave ma capisco che un approccio cosi di forza bruta non credo sia ottimale per cui chiedo a Nino se conosce un metodo di costruzione più furbo.

partendo dalla piramide di Tartaglia io so già il numero che mi devo aspettare per cui è inutile sviluppare tutte le possibili permutazioni e poi filtrare quelle che mi interessano.
qual'è l'idea di fondo che mi sfugge che mi permette di usare il Triangolo anche per la creazione delle chiavi oltre che per ricavare il numero totale?

grazie,

Carlo



Download attachment
MathTools.zip ( Number of downloads: 353 )

 
Top
Nino …..
view post Posted on 10/9/2011, 23:01     +1   -1




Purtroppo sarò in montagna ( Tor des Geants) fino a mercoledì.

Non ho capito cosa non hai capito ;-) (premetto che di programmazione non so nulla e quindi non posso essere di nessun aiuto)

Nel messaggio precedente traducevo semplicemente la chiave indicata da Gianni (somma di ciascun numero con il seguente, sottraendo 20 qualora la somma superi 20). Quella che ho chiamato testata è la prima delle 20 colonne del sistema (le altre 19 si ottengono sommando ripetutamente 1 ad ogni numero).

Per quanto riguarda la costruzione dei casi possibili, manualmente è lungo, ma semplicissimo (quindi con un programma deve essere una sciocchezza): basta sviluppare separatamente le combinazioni, come ho indicato nella mia tabellina (che poi vanno sommate).

Es. chiave 12
C(10,1)
3, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, 3, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, 3, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, 3, 1, 1, 1, 1, 1, 1
.......... 10 casi

C(10,2)
2, 2, 1, 1, 1, 1, 1, 1, 1, 1
2, 1, 2, 1, 1, 1, 1, 1, 1, 1
2, 1, 1, 2, 1, 1, 1, 1, 1, 1
2, 1, 1, 1, 2, 1, 1, 1, 1, 1
2, 1, 1, 1, 1, 2, 1, 1, 1, 1
2, 1, 1, 1, 1, 1, 2, 1, 1, 1
2, 1, 1, 1, 1, 1, 1, 2, 1, 1
2, 1, 1, 1, 1, 1, 1, 1, 2, 1
2, 1, 1, 1, 1, 1, 1, 1, 1, 2
1, 2, 2, 1, 1, 1, 1, 1, 1, 1
1, 2, 1, 2, 1, 1, 1, 1, 1, 1
................... 45 casi

Ciao
Nino
 
Top
Prepo
view post Posted on 11/9/2011, 00:11     +1   -1




CITAZIONE (Nino ….. @ 11/9/2011, 00:01)
Purtroppo sarò in montagna ( Tor des Geants) fino a mercoledì.

Non ho capito cosa non hai capito ;-) (premetto che di programmazione non so nulla e quindi non posso essere di nessun aiuto)

Nel messaggio precedente traducevo semplicemente la chiave indicata da Gianni (somma di ciascun numero con il seguente, sottraendo 20 qualora la somma superi 20). Quella che ho chiamato testata è la prima delle 20 colonne del sistema (le altre 19 si ottengono sommando ripetutamente 1 ad ogni numero).

Per quanto riguarda la costruzione dei casi possibili, manualmente è lungo, ma semplicissimo (quindi con un programma deve essere una sciocchezza): basta sviluppare separatamente le combinazioni, come ho indicato nella mia tabellina (che poi vanno sommate).

Es. chiave 12
C(10,1)
3, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, 3, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, 3, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, 3, 1, 1, 1, 1, 1, 1
.......... 10 casi

C(10,2)
2, 2, 1, 1, 1, 1, 1, 1, 1, 1
2, 1, 2, 1, 1, 1, 1, 1, 1, 1
2, 1, 1, 2, 1, 1, 1, 1, 1, 1
2, 1, 1, 1, 2, 1, 1, 1, 1, 1
2, 1, 1, 1, 1, 2, 1, 1, 1, 1
2, 1, 1, 1, 1, 1, 2, 1, 1, 1
2, 1, 1, 1, 1, 1, 1, 2, 1, 1
2, 1, 1, 1, 1, 1, 1, 1, 2, 1
2, 1, 1, 1, 1, 1, 1, 1, 1, 2
1, 2, 2, 1, 1, 1, 1, 1, 1, 1
1, 2, 1, 2, 1, 1, 1, 1, 1, 1
................... 45 casi

Ciao
Nino

Nino perdonami ma io come i pc sono abbastanza ZERO e UNO e ho bisogno di passi semplici per applicare quanto mi scrivi.
il caso chiave=12 è particolare e forse troppo semplice e non mi da una lettura completa per applicare l'algoritmo in modo generale e nonostante ciò non ho capito con quale criterio hai scelto in C(10,1) il valore 3 in C(10,2) il valore 2.

prendiamo ad esempio la chiave = 13

tramite il triangolo e la matrice ricavo che ho 220 chiavi divise cosi :

C(10,1) = 10 chiavi
C(10,2) = 90 chiavi
C(10,3)=120 chiavi

ora io come il pc posso ricavare gli indici posizionali delle generazioni delle combinazioni per cui
c(10,1) mi sviluppa 10 combinazioni :

1
2
3
4
5
6
7
8
9
10

da cui

X, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, X, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, X, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, X, 1, 1, 1, 1, 1, 1
1, 1, 1, 1, X, 1, 1, 1, 1, 1
1, 1, 1, 1, 1, X, 1, 1, 1, 1
1, 1, 1, 1, 1, 1, X, 1, 1, 1
1, 1, 1, 1, 1, 1, 1, X, 1, 1
1, 1, 1, 1, 1, 1, 1, 1, X, 1
1, 1, 1, 1, 1, 1, 1, 1, 1, X

c(10,2) mi sviluppa 45 combinazioni :

1, 2
1, 3
1, 4
1, 5
1, 6
1, 7
1, 8
1, 9
1, 10
2, 3
2, 4
2, 5
2, 6
2, 7
2, 8
2, 9
2, 10
3, 4
3, 5
3, 6
3, 7
3, 8
3, 9
3, 10
4, 5
4, 6
4, 7
4, 8
4, 9
4, 10
5, 6
5, 7
5, 8
5, 9
5, 10
6, 7
6, 8
6, 9
6, 10
7, 8
7, 9
7, 10
8, 9
8, 10
9, 10

da cui

X, X, 1, 1, 1, 1, 1, 1, 1, 1
X, 1, X, 1, 1, 1, 1, 1, 1, 1
X, 1, 1, X, 1, 1, 1, 1, 1, 1
X, 1, 1, 1, X, 1, 1, 1, 1, 1
X, 1, 1, 1, 1, X, 1, 1, 1, 1
X, 1, 1, 1, 1, 1, X, 1, 1, 1
X, 1, 1, 1, 1, 1, 1, X, 1, 1
X, 1, 1, 1, 1, 1, 1, 1, X, 1
X, 1, 1, 1, 1, 1, 1, 1, 1, X
1, X, X, 1, 1, 1, 1, 1, 1, 1
1, X, 1, X, 1, 1, 1, 1, 1, 1
1, X, 1, 1, X, 1, 1, 1, 1, 1
1, X, 1, 1, 1, X, 1, 1, 1, 1
1, X, 1, 1, 1, 1, X, 1, 1, 1
1, X, 1, 1, 1, 1, 1, X, 1, 1
1, X, 1, 1, 1, 1, 1, 1, X, 1
1, X, 1, 1, 1, 1, 1, 1, 1, X
1, 1, X, X, 1, 1, 1, 1, 1, 1
1, 1, X, 1, X, 1, 1, 1, 1, 1
1, 1, X, 1, 1, X, 1, 1, 1, 1
1, 1, X, 1, 1, 1, X, 1, 1, 1
1, 1, X, 1, 1, 1, 1, X, 1, 1
1, 1, X, 1, 1, 1, 1, 1, X, 1
1, 1, X, 1, 1, 1, 1, 1, 1, X
1, 1, 1, X, X, 1, 1, 1, 1, 1
1, 1, 1, X, 1, X, 1, 1, 1, 1
1, 1, 1, X, 1, 1, X, 1, 1, 1
1, 1, 1, X, 1, 1, 1, X, 1, 1
1, 1, 1, X, 1, 1, 1, 1, X, 1
1, 1, 1, X, 1, 1, 1, 1, 1, X
1, 1, 1, 1, X, X, 1, 1, 1, 1
1, 1, 1, 1, X, 1, X, 1, 1, 1
1, 1, 1, 1, X, 1, 1, X, 1, 1
1, 1, 1, 1, X, 1, 1, 1, X, 1
1, 1, 1, 1, X, 1, 1, 1, 1, X
1, 1, 1, 1, 1, X, X, 1, 1, 1
1, 1, 1, 1, 1, X, 1, X, 1, 1
1, 1, 1, 1, 1, X, 1, 1, X, 1
1, 1, 1, 1, 1, X, 1, 1, 1, X
1, 1, 1, 1, 1, 1, X, X, 1, 1
1, 1, 1, 1, 1, 1, X, 1, X, 1
1, 1, 1, 1, 1, 1, X, 1, 1, X
1, 1, 1, 1, 1, 1, 1, X, X, 1
1, 1, 1, 1, 1, 1, 1, X, 1, X
1, 1, 1, 1, 1, 1, 1, 1, X, X

c(10,3) mi sviluppa 120 combinazioni :


1, 2, 3
1, 2, 4
1, 2, 5
1, 2, 6
1, 2, 7
1, 2, 8
1, 2, 9
1, 2, 10
1, 3, 4
1, 3, 5
1, 3, 6
1, 3, 7
1, 3, 8
1, 3, 9
1, 3, 10
1, 4, 5
1, 4, 6
1, 4, 7
1, 4, 8
1, 4, 9
1, 4, 10
1, 5, 6
1, 5, 7
1, 5, 8
1, 5, 9
1, 5, 10
1, 6, 7
1, 6, 8
1, 6, 9
1, 6, 10
1, 7, 8
1, 7, 9
1, 7, 10
1, 8, 9
1, 8, 10
1, 9, 10
2, 3, 4
2, 3, 5
2, 3, 6
2, 3, 7
2, 3, 8
2, 3, 9
2, 3, 10
2, 4, 5
2, 4, 6
2, 4, 7
2, 4, 8
2, 4, 9
2, 4, 10
2, 5, 6
2, 5, 7
2, 5, 8
2, 5, 9
2, 5, 10
2, 6, 7
2, 6, 8
2, 6, 9
2, 6, 10
2, 7, 8
2, 7, 9
2, 7, 10
2, 8, 9
2, 8, 10
2, 9, 10
3, 4, 5
3, 4, 6
3, 4, 7
3, 4, 8
3, 4, 9
3, 4, 10
3, 5, 6
3, 5, 7
3, 5, 8
3, 5, 9
3, 5, 10
3, 6, 7
3, 6, 8
3, 6, 9
3, 6, 10
3, 7, 8
3, 7, 9
3, 7, 10
3, 8, 9
3, 8, 10
3, 9, 10
4, 5, 6
4, 5, 7
4, 5, 8
4, 5, 9
4, 5, 10
4, 6, 7
4, 6, 8
4, 6, 9
4, 6, 10
4, 7, 8
4, 7, 9
4, 7, 10
4, 8, 9
4, 8, 10
4, 9, 10
5, 6, 7
5, 6, 8
5, 6, 9
5, 6, 10
5, 7, 8
5, 7, 9
5, 7, 10
5, 8, 9
5, 8, 10
5, 9, 10
6, 7, 8
6, 7, 9
6, 7, 10
6, 8, 9
6, 8, 10
6, 9, 10
7, 8, 9
7, 8, 10
7, 9, 10
8, 9, 10

da cui

X, X, X, 1, 1, 1, 1, 1, 1, 1
X, X, 1, X, 1, 1, 1, 1, 1, 1
X, X, 1, 1, X, 1, 1, 1, 1, 1
X, X, 1, 1, 1, X, 1, 1, 1, 1
.......
.......
1, 1, 1, 1, 1, 1, X, X, X, 1
1, 1, 1, 1, 1, 1, X, X, 1, X
1, 1, 1, 1, 1, 1, X, 1, X, X
1, 1, 1, 1, 1, 1, 1, X, X, X

per non dilungarmi troppo ne ho sviluppato solo una parte di questa..ma sono 120

ora il mio problema è :

COME SCELGO X in tutti e tre i C(10,1), C(10,2) , C(10,3) e più in generale dato un C(10,n) mi sviluppa delle combinazioni che mi dicono le posizioni che non assumono 1 nella chiave..ma come scelgo i valori al posto di X??
è vero che la somma deve fare quanto la chiave ma non posso andare per tentativi immagino ci sia una logica nella creazione.

grazie,

Carlo

Edited by Prepo - 11/9/2011, 22:25
 
Top
Nino …..
view post Posted on 11/9/2011, 08:32     +1   -1




Beh, basta fare la differenza fra la chiave (nell'esempio 13) e la somma dei segni 1 e dividere il risultato per il numero di X.
Se tale risultato non è intero, occorre raddoppiare lo sviluppo, ponendo X1=X+0,5 e X2=X-0,5

Un po' più complicato il discorso mano a mano che il numero della chiave aumenta e quindi aumentano le somme parziali. La cosa fondamentale è comunque partire sempre da questo valore:
Chiave - numero dei segni 1
Questo risultato deve essere ottenuto in 1 - 2 - 3 ecc.. addendi finché possibile.
Es. chiave 17, caso 5 segni 1, risultato 12 da ottenere con (10-5 addendi, segni 1 esclusi) .
Quindi:
4 - 2 - 2 - 2 - 2
3 - 3 - 2 - 2 - 2

Sono di fretta, potrebbero esserci errori
 
Top
Prepo
view post Posted on 11/9/2011, 21:46     +1   -1




CITAZIONE (TarulliG @ 11/9/2011, 19:05) 
Carlo, forse riesco a darti la risposta con un caso reale.
Ho convertito e misurato le 220 chiavi del valore 13.
L'idea che mi sono fatto e che il valore 14 contenga già
le colonne per valore 13 (e così per 12 e 11).

Per cui valori chiave da 11 a 12 e poi a 13 danno colonne con migliore resa
che sembrano essere correlate tra loro.
Per averne la certezza mi servirebbe costruire le chiavi con valore 14
(e con il programmino postato non c'è problema)
ma poi mi servirebbe detrarre le 220 del valore 13.

Se le detrae vuol dire innanzitutto che quelle sono già incluse nel valore 14
e che poi a quel punto, in modo visivo, riesco a capire come funzionano e come
identificare direttamente per un determinato valore la colonna
meglio funzionante in copertura senza doverle verificare una per una a mano
( cosa che fino a 13 ho già fatto :wacko: ) o in automatico, che poi è
circa quello che hai chiesto a Nino.

Puoi verificare se le 220 del valore 13 sono
incluse nel valore 14 e postare la differenza?

ciao Gianni,

non ho potuto rispondere prima perchè oggi è stata una giornata infernale...lo so è domenica...ma io a volte lavoro di più di domenica che quando sono in ufficio :-(

ho capito l'idea di Nino ma non è applicabile in un algoritmo perchè richiede intelligenza, comunque stamattina mentre ero in vigna mi è venuta l'ispirazione e credo di aver capito come procedere, in pratica non è altro che riapplicare il meccanismo delle permutazioni

es : chiave 13

C(10,1)+C(10,2)+C(10,3)

C(10,1) vuol dire che ho 9 posizioni 1 e che ho 1 posizione a scelta per la mia X che può avere valori da 2 a 4 (13-9cioè chiave - numero di 1)
per cui iterando trovo

x=2 non va bene poichè 9+2 non fa 13
x=3 non va bene poichè 9+3 non fa 13
x=4 va bene poichè 9+4 = 13
mi fermo perchè sono arrivato a 4 che è il limite superiore

ok sviluppo le combinazioni di C(10,1) e trovo
1
2
3
4
5
6
7
8
9
10

per cui la mia X nelle posizioni sopra menzionate dovrà avere valore 4 per cui ottengo

4, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, 4, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, 4, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, 4, 1, 1, 1, 1, 1, 1
1, 1, 1, 1, 4, 1, 1, 1, 1, 1
1, 1, 1, 1, 1, 4, 1, 1, 1, 1
1, 1, 1, 1, 1, 1, 4, 1, 1, 1
1, 1, 1, 1, 1, 1, 1, 4, 1, 1
1, 1, 1, 1, 1, 1, 1, 1, 4, 1
1, 1, 1, 1, 1, 1, 1, 1, 1, 4

ok ora passiamo a C(10,2)

C(10,2) vuol dire che ho 8 posizioni 1 e che ho 2 posizioni a scelta per la mia X che può avere valori da 2 a 5 (13-8 cioè chiave - numeri di 1)
per cui iterando trovo

x1=2 e x2= 2 non va bene poichè 8+2+2 non fa 13
x1=2 e x2= 3 va bene poichè 8+2+3 fa 13
x1=2 e x2= 4 non va bene poichè 8+2+4 non fa 13
x1=2 e x2= 5 non va bene poichè 8+2+5 non fa 13
x1=3 e x2= 2 va bene poichè 8+3+2 fa 13
x1=3 e x2= 3 non va bene poichè 8+3+3 non fa 13
x1=3 e x2= 4 non va bene poichè 8+3+4 non fa 13
x1=3 e x2= 5 non va bene poichè 8+3+5 non fa 13
x1=4 e x2= 2 non va bene poichè 8+4+2 non fa 13
x1=4 e x2= 3 non va bene poichè 8+4+3 non fa 13
x1=4 e x2= 4 non va bene poichè 8+4+4 non fa 13
x1=4 e x2= 5 non va bene poichè 8+4+5 non fa 13
x1=5 e x2= 2 non va bene poichè 8+5+2 non fa 13
x1=5 e x2= 3 non va bene poichè 8+5+3 non fa 13
x1=5 e x2= 4 non va bene poichè 8+5+4 non fa 13
x1=5 e x2= 5 non va bene poichè 8+5+5 non fa 13

ok quindi ho 2 possibili coppie di x che vanno bene
la coppia (2,3) e la coppia (3,2)

sviluppo le combinazioni
C(10,2) che sono 45

1, 2
1, 3
1, 4
1, 5
1, 6
1, 7
1, 8
1, 9
1, 10
2, 3
2, 4
2, 5
2, 6
2, 7
2, 8
2, 9
2, 10
3, 4
3, 5
3, 6
3, 7
3, 8
3, 9
3, 10
4, 5
4, 6
4, 7
4, 8
4, 9
4, 10
5, 6
5, 7
5, 8
5, 9
5, 10
6, 7
6, 8
6, 9
6, 10
7, 8
7, 9
7, 10
8, 9
8, 10
9, 10

ora per ognuna delle mie coppia sopra applico le 45 combinazioni ed ottengo
coppia (2,3)

2, 3, 1, 1, 1, 1, 1, 1, 1, 1
2, 1, 3, 1, 1, 1, 1, 1, 1, 1
2, 1, 1, 3, 1, 1, 1, 1, 1, 1
2, 1, 1, 1, 3, 1, 1, 1, 1, 1
2, 1, 1, 1, 1, 3, 1, 1, 1, 1
2, 1, 1, 1, 1, 1, 3, 1, 1, 1
2, 1, 1, 1, 1, 1, 1, 3, 1, 1
2, 1, 1, 1, 1, 1, 1, 1, 3, 1
2, 1, 1, 1, 1, 1, 1, 1, 1, 3
1, 2, 3, 1, 1, 1, 1, 1, 1, 1
1, 2, 1, 3, 1, 1, 1, 1, 1, 1
1, 2, 1, 1, 3, 1, 1, 1, 1, 1
1, 2, 1, 1, 1, 3, 1, 1, 1, 1
1, 2, 1, 1, 1, 1, 3, 1, 1, 1
1, 2, 1, 1, 1, 1, 1, 3, 1, 1
1, 2, 1, 1, 1, 1, 1, 1, 3, 1
1, 2, 1, 1, 1, 1, 1, 1, 1, 3
1, 1, 2, 3, 1, 1, 1, 1, 1, 1
1, 1, 2, 1, 3, 1, 1, 1, 1, 1
1, 1, 2, 1, 1, 3, 1, 1, 1, 1
1, 1, 2, 1, 1, 1, 3, 1, 1, 1
1, 1, 2, 1, 1, 1, 1, 3, 1, 1
1, 1, 2, 1, 1, 1, 1, 1, 3, 1
1, 1, 2, 1, 1, 1, 1, 1, 1, 3
1, 1, 1, 2, 3, 1, 1, 1, 1, 1
1, 1, 1, 2, 1, 3, 1, 1, 1, 1
1, 1, 1, 2, 1, 1, 3, 1, 1, 1
1, 1, 1, 2, 1, 1, 1, 3, 1, 1
1, 1, 1, 2, 1, 1, 1, 1, 3, 1
1, 1, 1, 2, 1, 1, 1, 1, 1, 3
1, 1, 1, 1, 2, 3, 1, 1, 1, 1
1, 1, 1, 1, 2, 1, 3, 1, 1, 1
1, 1, 1, 1, 2, 1, 1, 3, 1, 1
1, 1, 1, 1, 2, 1, 1, 1, 3, 1
1, 1, 1, 1, 2, 1, 1, 1, 1, 3
1, 1, 1, 1, 1, 2, 3, 1, 1, 1
1, 1, 1, 1, 1, 2, 1, 3, 1, 1
1, 1, 1, 1, 1, 2, 1, 1, 3, 1
1, 1, 1, 1, 1, 2, 1, 1, 1, 3
1, 1, 1, 1, 1, 1, 2, 3, 1, 1
1, 1, 1, 1, 1, 1, 2, 1, 3, 1
1, 1, 1, 1, 1, 1, 2, 1, 1, 3
1, 1, 1, 1, 1, 1, 1, 2, 3, 1
1, 1, 1, 1, 1, 1, 1, 2, 1, 3
1, 1, 1, 1, 1, 1, 1, 1, 2, 3

coppia (3,2)
3, 2, 1, 1, 1, 1, 1, 1, 1, 1
3, 1, 2, 1, 1, 1, 1, 1, 1, 1
3, 1, 1, 2, 1, 1, 1, 1, 1, 1
3, 1, 1, 1, 2, 1, 1, 1, 1, 1
3, 1, 1, 1, 1, 2, 1, 1, 1, 1
3, 1, 1, 1, 1, 1, 2, 1, 1, 1
3, 1, 1, 1, 1, 1, 1, 2, 1, 1
3, 1, 1, 1, 1, 1, 1, 1, 2, 1
3, 1, 1, 1, 1, 1, 1, 1, 1, 2
1, 3, 2, 1, 1, 1, 1, 1, 1, 1
1, 3, 1, 2, 1, 1, 1, 1, 1, 1
1, 3, 1, 1, 2, 1, 1, 1, 1, 1
1, 3, 1, 1, 1, 2, 1, 1, 1, 1
1, 3, 1, 1, 1, 1, 2, 1, 1, 1
1, 3, 1, 1, 1, 1, 1, 2, 1, 1
1, 3, 1, 1, 1, 1, 1, 1, 2, 1
1, 3, 1, 1, 1, 1, 1, 1, 1, 2
1, 1, 3, 2, 1, 1, 1, 1, 1, 1
1, 1, 3, 1, 2, 1, 1, 1, 1, 1
1, 1, 3, 1, 1, 2, 1, 1, 1, 1
1, 1, 3, 1, 1, 1, 2, 1, 1, 1
1, 1, 3, 1, 1, 1, 1, 2, 1, 1
1, 1, 3, 1, 1, 1, 1, 1, 2, 1
1, 1, 3, 1, 1, 1, 1, 1, 1, 2
1, 1, 1, 3, 2, 1, 1, 1, 1, 1
1, 1, 1, 3, 1, 2, 1, 1, 1, 1
1, 1, 1, 3, 1, 1, 2, 1, 1, 1
1, 1, 1, 3, 1, 1, 1, 2, 1, 1
1, 1, 1, 3, 1, 1, 1, 1, 2, 1
1, 1, 1, 3, 1, 1, 1, 1, 1, 2
1, 1, 1, 1, 3, 2, 1, 1, 1, 1
1, 1, 1, 1, 3, 1, 2, 1, 1, 1
1, 1, 1, 1, 3, 1, 1, 2, 1, 1
1, 1, 1, 1, 3, 1, 1, 1, 2, 1
1, 1, 1, 1, 3, 1, 1, 1, 1, 2
1, 1, 1, 1, 1, 3, 2, 1, 1, 1
1, 1, 1, 1, 1, 3, 1, 2, 1, 1
1, 1, 1, 1, 1, 3, 1, 1, 2, 1
1, 1, 1, 1, 1, 3, 1, 1, 1, 2
1, 1, 1, 1, 1, 1, 3, 2, 1, 1
1, 1, 1, 1, 1, 1, 3, 1, 2, 1
1, 1, 1, 1, 1, 1, 3, 1, 1, 2
1, 1, 1, 1, 1, 1, 1, 3, 2, 1
1, 1, 1, 1, 1, 1, 1, 3, 1, 2
1, 1, 1, 1, 1, 1, 1, 1, 3, 2

ok ora passiamo all'ultimo passo C(10,3)

C(10,3) vuol dire che ho 7 posizioni 1 e che ho 3 posizioni a scelta per la mia X che può avere valori da 2 a 6 (13-7 cioè chiave - numeri di 1)
per cui iterando trovo che ho una sola tripletta che va bene ed è la (2,2,2) tutte le restanti non fanno 13

ok ora sviluppo le combinazioni C(10,3) che sono 120 :

1, 2, 3
1, 2, 4
1, 2, 5
1, 2, 6
1, 2, 7
1, 2, 8
1, 2, 9
1, 2, 10
1, 3, 4
1, 3, 5
1, 3, 6
1, 3, 7
1, 3, 8
1, 3, 9
1, 3, 10
1, 4, 5
1, 4, 6
1, 4, 7
1, 4, 8
1, 4, 9
1, 4, 10
1, 5, 6
1, 5, 7
1, 5, 8
1, 5, 9
1, 5, 10
1, 6, 7
1, 6, 8
1, 6, 9
1, 6, 10
1, 7, 8
1, 7, 9
1, 7, 10
1, 8, 9
1, 8, 10
1, 9, 10
2, 3, 4
2, 3, 5
2, 3, 6
2, 3, 7
2, 3, 8
2, 3, 9
2, 3, 10
2, 4, 5
2, 4, 6
2, 4, 7
2, 4, 8
2, 4, 9
2, 4, 10
2, 5, 6
2, 5, 7
2, 5, 8
2, 5, 9
2, 5, 10
2, 6, 7
2, 6, 8
2, 6, 9
2, 6, 10
2, 7, 8
2, 7, 9
2, 7, 10
2, 8, 9
2, 8, 10
2, 9, 10
3, 4, 5
3, 4, 6
3, 4, 7
3, 4, 8
3, 4, 9
3, 4, 10
3, 5, 6
3, 5, 7
3, 5, 8
3, 5, 9
3, 5, 10
3, 6, 7
3, 6, 8
3, 6, 9
3, 6, 10
3, 7, 8
3, 7, 9
3, 7, 10
3, 8, 9
3, 8, 10
3, 9, 10
4, 5, 6
4, 5, 7
4, 5, 8
4, 5, 9
4, 5, 10
4, 6, 7
4, 6, 8
4, 6, 9
4, 6, 10
4, 7, 8
4, 7, 9
4, 7, 10
4, 8, 9
4, 8, 10
4, 9, 10
5, 6, 7
5, 6, 8
5, 6, 9
5, 6, 10
5, 7, 8
5, 7, 9
5, 7, 10
5, 8, 9
5, 8, 10
5, 9, 10
6, 7, 8
6, 7, 9
6, 7, 10
6, 8, 9
6, 8, 10
6, 9, 10
7, 8, 9
7, 8, 10
7, 9, 10
8, 9, 10

da cui per ogni riga in posizione delle (x,x,x) metto (2,2,2)

2, 2, 2, 1, 1, 1, 1, 1, 1, 1
2, 2, 1, 2, 1, 1, 1, 1, 1, 1
2, 2, 1, 1, 2, 1, 1, 1, 1, 1
2, 2, 1, 1, 1, 2, 1, 1, 1, 1
.......
.......
1, 1, 1, 1, 1, 1, 2, 2, 2, 1
1, 1, 1, 1, 1, 1, 2, 2, 1, 2
1, 1, 1, 1, 1, 1, 2, 1, 2, 2
1, 1, 1, 1, 1, 1, 1, 2, 2, 2

con tutta probabilità l'insieme di ricerca lo posso ridurre cercando i valori delle varie coppie , triple etc.. da 2 a (chiave-numero di 1 - 1)
per esempio in C(10,3) i valori che ricerco saranno 2,3,4,5 è inutile iterare sul 6 visto che gia 6+7 uno fa già 13 e a me serve una tripletta e non un singolo numero.

ora dovrei aver imparato il meccanismo di creazione delle chiavi il bello sarà trasformarlo in un programma :-)

Gianni per quanto riguarda la tua considerazione di avere le chiavi intersecate credo proprio che non sia possibile, tutte le chiavi hanno un insieme distinto e non trovo possibile avere nelle chiavi 13 delle chiavi 11 o 12 poichè cambiano il numero di 1 e i valori delle x.

ciao,

Carlo




 
Top
icon1  view post Posted on 12/9/2011, 07:41     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


Ciao Carlo, scusa mi sono espresso malissimo.

Quello che intendo dire e che per valori simili
le colonne con la maggiore copertura (nell'esempio sotto il 20,10,7,10)
sono posizionate in modo quasi prevedibile.
Per cui anche senza lo sviluppo totale delle chiavi
credo che in qualche modo si possa immediatamente trovare
quella a maggiore copertura.

Sotto il C(10,1) per valori di 11,12,13,14 ed a sinistra le
colonne scoperte delle 184756 componenti il ridotto:
 
Top
icon1  view post Posted on 13/9/2011, 22:13     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


:B): Idem con patate per le 715 combinazioni della chiave 14.
dopo averne fatte una 80a scarsa mi sono reso conto che il passo era 32.

Per cui ho sviluppato solo i multipli di 32 e ho beccato la minore
scopertura in pochi minuti. ^_^

Ora rimangono da fare circa 600 chiavi per poter confermare
che è effettivamente così. :wacko:
 
Top
80 replies since 10/9/2011, 09:38   14276 views
  Share