|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2004
Città: Assisi
Messaggi: 1511
|
Random con C++
Salve, vorrei sapere se in questo modo ottengo numeri casuali da -1000 a 1000??
O se c'è un altro modo simile per farlo?? numero_casuale=(rand()%(2000+1))-1000; Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Questa ormai e' una FAQ
Chi si prende la briga di scriverla? Codice:
float FloatRand()
{
return rand() / (RAND_MAX + 1);
}
int IntRand(unsigned int range, int bias)
{
return (int) (range * frand()) + bias;
}
...
unsigned int x = IntRand(2000, -1000);
Codice:
class IntRand
{
public:
IntRand(
unsigned int range,
int bias)
: m_Range(range)
, m_Bias(bias)
{
}
unsigned int Generate(void)
{
float randomFloatValue = rand() / (RAND_MAX + 1);
return (int) (m_Range * randomFloatValue) + m_Bias;
}
private:
unsigned int m_Range;
int m_Bias;
};
...
IntRand intRand(2000, -1000); // da -1000 a +1000
intRand.Generate();
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 25-01-2005 alle 16:18. |
|
|
|
|
|
#3 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Cerca nei vecchi post.
Scoprirai non solo come si fa, ma anche il motivo per cui il metodo che tu suggerisci non è particolarmente consigliato.
__________________
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 |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
|
Ziosilvio scommetto che non si ottiene una distribuzione uniforme se RAND_MAX non e' un multiplo di x per rand()%x!
|
|
|
|
|
|
#5 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Quote:
__________________
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 |
|
|
|
|
|
|
#6 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Uh uh... non me ne ero accorto subito...
Quote:
__________________
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 |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Versione corretta: Codice:
float FloatRand()
{
return (float) rand() / (RAND_MAX + 1);
}
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
|
Quote:
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jun 2004
Città: Assisi
Messaggi: 1511
|
Grazie delle informazioni, volevo sapere se la parola bias ha qualche significato specifico o è solo una parola utilizzata a caso!
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2004
Città: Assisi
Messaggi: 1511
|
Up
|
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Quote:
Un po' di tempo fa ho scritto un algoritmo che generava automaticamente labirinti di grosse dimensioni, ma spesso mi capitava di avere una o due caselle "cannate". Dopo un lungo e intenso debug mi sono accorto che succedeva quando disgraziatamente ottenevo il risultato 1 dal random
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:57.



















