|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Aug 2005
Messaggi: 226
|
[C]Generazione di numeri random
Salve a tutti, qualcuno mi potrebbe gentilmente dire come si genera un intero random compreso tra zero e 10, usando il c?
Ultima modifica di dejawho : 12-03-2006 alle 17:35. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
|
#include <stdlib.h>
#include <time.h> #include <stdio.h> int main() { int i=0; srand(time(NULL)); for(i=0; i <10; i++) { printf("%d ", rand( ) % 11); } system("pause"); // se usi devc } |
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Aug 2005
Messaggi: 226
|
Quote:
Ok, grazie. Io uso cygwin quindi system("pause"); non serve vero? Poi volevo sapere, io il valore non lo devo stampare ma usarlo in una espressione quindi dovrebbe bastarmi rand( ) % 11 giusto? Solo per curiosità perché prendo il resto della divisione per 11? |
|
|
|
|
|
|
#4 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Quote:
Un modo per stare un po' più tranquilli è trasformare il valore di rand in un valore in virgola mobile uniforme tra 0 incluso e 1 escluso, e poi moltiplicare per N e prendere la parte intera. Ad esempio: Codice:
int irand(int range) /* valore pseudorandom tra 0 e range-1 */
{
return (int)(((double)rand()/(RAND_MAX+1))*range);
}
__________________
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 |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Su VC++ (.NET 2003) RAND_MAX vale 0x7FFF mentre su Linux (ho guardato su una Slackware) vale 2147483647.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#6 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Quote:
Allora mi sa che bisogna scrivere RAND_MAX+1.0: il valore che viene fuori è un double, e (se non sbaglio) i double devono poter rappresentare correttamente tutti gli int.
__________________
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: Jan 2008
Città: Cuneo
Messaggi: 2774
|
E se invece si avesse bisogno di numeri casuali da -N a +N ?
__________________
Le mie trattative QUI - Cerco Pezzi di ricambio ANTEC SOLO II - Vendo Ram So-dimm ddr2 800 - Vendo 2 Router |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
basta che tiri fuori un numero tra 0 e 2N e togli N
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:02.



















