|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2004
Messaggi: 76
|
random
come faccio a generare in c n numeri casuali SENZA la possibilità che vengano ripetuti?:
randomize(); for (i=y;i<=x;i++) printf("\n%d",random(90)+1); |
|
|
|
|
|
#2 | ||
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Re: random
Quote:
Né in C, né in nessun altro linguaggio. Se la sequenza è davvero casuale, allora non puoi fare nessuna previsione sul termine successivo basandoti sui precedenti: in particolare, non puoi essere certo che non sarà uguale a uno di quelli già usciti. Tutt'al più, puoi generare a caso una permutazione di un insieme casuale di n numeri, purché n non sia troppo grande. Quote:
Se vuoi creare un programma C standard, devi usare srand e rand.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
l'unico modo per sperare che il prossimo numero non sia lo stesso è avere un numero di valori grandissimo
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Si può tentare di fare una estrazione senza reinbussolamento...
Codice:
/* estrazione senza reimbussolamento di m elementi
su una popolazione di n elementi */
int vettore_casuale(int *v, int m, int n)
{
char *v2;
int i, j;
if(m > n)
return 1;
v2 = malloc(sizeof(char)*n);
memset(v2, 0, sizeof(char)*n);
for(i=0; i<m; i++)
{
v[i] = rand()%(n-i) + 1;
j = 0;
while(v[i] > 0 )
{
if(v2[j++] == 0)
v[i]--;
}
v2[j-1] = 1;
v[i] = j;
}
free(v2);
return 0;
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:09.



















