PDA

View Full Version : [AutoIt/Php]Combinazioni possibili


Black random
01-11-2010, 15:39
Ciao a tutti, sto facendo un programma per il lotto. Ora so che 90 numeri danno origine a 4005 combinazioni di ambo. Come posso avere tutte le 4005 scritte numericamente? Vorrei praticamente una lista contenente tutte le 4005 combinazioni. Come posso fare?

Ciao!

Mattyfog
01-11-2010, 15:50
Con due clicli annidati (uno dentro l'altro)!

for ($a = 1; b < 91 ; $a++)
{
for ($b = 1; b < 91; $b++)
{
if($a = $b) {}
else {echo $a.' '.$b.'<br/>';}
}
}

Prova, dovrebbe funzionare ;)

Black random
01-11-2010, 16:46
Non funziona mi restituisce un numero maggiore di 7000, ma so per certo che le combinazioni sono 4005 :D

Ciao!

Mattyfog
01-11-2010, 16:52
Beh, per forza mi sono dimenticato di fare eliminare allo script le copie doppie. :D
Comunque non è difficile da risolvere, puoi farlo tu stesso:
crei un array ed ogni volta che trovi una coppia di numeri la salvi nell'array, ma prima di salvarla controlli che non sia già stata salvata precedentemente tenendo conto che la 1;2 sarà uguale a 2;1.
Capito?
Prova, poi se hai problemi pubblica il codice e ti daremo suggerimenti.

Black random
01-11-2010, 17:17
Io ho questo codice :

#include <File.au3>
Global $a, $b
For $a = 1 To 90
For $b = 1 To 90
If $a <> $b Then
FileWrite ("C:\Numeri.txt",$a & "|" & $b & @CRLF)
EndIf
Next
Next

Non ho idea di come eliminare le doppie coppie :( Mi puoi aiutare?

Mattyfog
01-11-2010, 17:42
Ti ho già detto come fare. Provaci almeno. Il meccanismo te l'ho spiegato, prova a scrivere il codice.

Black random
01-11-2010, 18:00
So anche aggiungere i dati che ho, invece che sul file sull'array ma poi? Non ho proseguito con la scrittura proprio perchè non so eliminare le coppie = anche se sono invertite (es. 1-2,2-1). Help:sofico:

Ciao :P

Mattyfog
01-11-2010, 18:24
In pratica prima di salvare una coppia controlla che non sia doppia cercando nell'array.

In pratica (mi è venuta ora in mente un'idea, provala

if(isset($array($a, $b)) | isset($array($b, $a)))
{//non salvare la coppia perchè esiste già}
else { $array($a,$b) = true;}

wingman87
01-11-2010, 18:57
Puoi anche impostare i due cicli in modo che non creino due volte la stessa combinazione:
for(i=1;i<=90;i++)
for(j=i+1;j<=90;j++)
//salvi la coppia i,j