Oppure

Loading
23/01/06 20:30
Teleutes
Salve ragazzi! Sono nuovo e sto studiando il linguaggio C...Ultimamente sto scrivendo due programmini e in uno avevo bisogno di generare dei numeri positivi e negativi che poi andrebbero inseriti in un array bidimensionale quadrato...Ora stavo pensando che potrei fare un semplice rand e poi dire che magari i primi 20 numeri li moltiplica per -1 e gli altri li lascia invariato ma cos? effettivamente avrei per forza in ordine prima i negativi e poi i positivi... invece ho bisogno che si generino a caso sia quelli pos. sia quelli neg.

Qualcuno sa consigliarmi un metodo migliore ?

Grazie e scusate se magari ? una domanda stupida 8-|:D
aaa
25/01/06 22:27
Zizzius
Ponendo n come fattore di scala, la generazione di numeri casuali compresi tra -n/2 e n/2 viene eseguita nel modo seguente:

rand() % n - n/2;

Ad esempio, volendo assegnare all'ipotetica variabile a un valore compreso tra -10 e 10 si pu? scrivere:

a = rand() % 21 - 10;

Vedi pierotofy.it/pages/guide/C/Generazione_di_numeri_casuali/ per ulteriori informazioni. :k:
Ultima modifica effettuata da Zizzius 25/01/06 22:28
aaa
26/01/06 17:51
Teleutes
Grazie Mille Zizzius..poi mi sono reso conto della semplicit? della cosa e non ci crederai mai ma mi ? venuta la soluzione in sogno :rotfl:
aaa
26/01/06 21:45
pierotofy
Io ci credo, le idee pi? geniali mi vengono sempre mentre dormo. :)
Il mio blog: piero.dev
27/01/06 19:09
Zizzius
L'importante ? non dormire quando devono venire le idee geniali... :rotfl::rotfl:
aaa
11/05/14 23:56
E se invece di fare...

rand() % n - n/2;


...uno mettesse insieme una funzione di questo tipo?

short caso_con_segno( short limite ) {
    short caso = rand() % limite;
    if( rand()%2 ) caso = -caso;
    return caso; 
}


Lo so che a questo modo si "mangiano" un bel po' di passaggi, ma non si avrebbe la possibilità di una gamma di valori più ampia?
12/05/14 15:13
pierotofy
Aldo, questo e' un post di 8 anni fa.

Normalmente non si risponde a topics che sono stati aperti molto tempo fa.
Il mio blog: piero.dev
12/05/14 15:55
Va bene, faccio tesoro. Tieni presente che sono "nuovo".