PDA

View Full Version : [C] array metà random


gabmac2
21-03-2010, 10:11
Ho un problemino in C,vorrei costruire un array per metà con valori random costruiti da 1 a k e per metà interamente random ma con valori > k

es
1 4 9 11 20 | 29 22 34 28 50

a[i]=val+(rand(val-k))

una cosa del genere?

Grazie in anticipo

Rsk
21-03-2010, 10:32
Ho un problemino in C,vorrei costruire un array per metà con valori random costruiti da 1 a k e per metà interamente random ma con valori > k

es
1 4 9 11 20 | 29 22 34 28 50

a[i]=val+(rand(val-k))

una cosa del genere?

Grazie in anticipo

Usa il modulo "%"

for(i=0; i<N; i++){
if(i< N/2) a[i]=rand()%k+1
else a[i]=k+rand()%limite
}

Dove limite è il range che desideri di valori > k

fero86
21-03-2010, 13:29
Usa il modulo "%" non bisogna mai usare il modulo sul risultato di rand() perché esso nella maggior parte dei casi cambia la distribuzione rendendo alcuni valori piu frequenti di altri. c'é una guida bellissima su questo forum che spiega tutti i dettagli.

fero86
21-03-2010, 13:35
eccola qua: http://www.hwupgrade.it/forum/showthread.php?t=1196677

Rsk
21-03-2010, 14:50
:O
Grazie, in effetti me ne sono accorto :)

gabmac2
21-03-2010, 15:09
allora,come posso modificare?