Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Dopo due settimane trascorse al volante della Dacia Spring 2026 possiamo raccontarvi tutto, dalle novità di motore e batteria, fino ai consumi in tutti le situazioni, compresa l'autonomia reale ad alta velocità
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre
Abbiamo messo alla prova la nuova AORUS GeForce RTX 5080 INFINITY WOOD 16G, una delle interpretazioni più particolari della GPU NVIDIA Blackwell. Prestazioni, frequenze operative, temperature, consumi e margini di overclock sono stati confrontati con altre RTX 5080 custom e con la Founders Edition. Il design in legno è solo uno degli elementi distintivi di una scheda che punta a ritagliarsi uno spazio nella fascia più alta del mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-06-2006, 08:32   #1
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
[C++] Generare un numero random

come si fa a generare un numero random in C++? quali file si devono includere?
Grazie in anticipo
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2006, 08:45   #2
Andlea
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 357
Codice:
#include <time.h>

srand(time(NULL));
a=rand()%range;
range è un numero positivo, che determina il range in cui il numero viene creato
La funzione restituisce un int tra 0 e range
Codice:
rand()%range-range;  // Numeri negativi
rand()%range-range/2;   // Numeri positivi e negativi nell'intorno di 0 con massimo in range/2
ecc...
Andlea è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2006, 08:50   #3
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
grazie.
che significa
srand(time(null)); ?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2006, 09:07   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
che significa
srand(time(null)); ?
srand serve per impostare il "seme" per la generazione della sequenza di numeri pseudo-casuali. Passando alla srand la data/ora corrente, si imposta in questo modo un "buon" seme "casuale".
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2006, 09:12   #5
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
grazie a tutti e due gli andrea
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2006, 14:56   #6
midget
Senior Member
 
Iscritto dal: Feb 2001
Città: Firenze
Messaggi: 516
In questa pagina (http://members.cox.net/srice1/random/crandom.html) ci sono delle precisazioni molto interessanti per ottenere un numero casuale in maniera corretta.

In particolare si sottolinea questo:
Quote:
Do NOT use
y = rand() % M;
Ciao
midget è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2006, 15:47   #7
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da midget
In questa pagina (http://members.cox.net/srice1/random/crandom.html) ci sono delle precisazioni molto interessanti per ottenere un numero casuale in maniera corretta.

In particolare si sottolinea questo:


Ciao
e perché mai ???
io come al solito ho: Accesso negato
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 10:43   #8
midget
Senior Member
 
Iscritto dal: Feb 2001
Città: Firenze
Messaggi: 516
Quella pagina lo spiega in modo esauriente, a me funziona, ho appena provato.

Comunque in sintesi facendo il modulo si ottiene una correlazione tra il numero generato con solo i bit inferiori restituiti da rand() che "generalmente" sono molto meno casuali dei bit superiori. Ovviamente e' possibile che la specifica implementazione di rand() delle librerie che si vanno ad utilizzare abbia un comportamento diverso (eventualmente migliore).
Le formule indicate nella pagina citata servono per essere sicuri di utilizzare comunque tutti i bit generati da rand() a prescindere dall'implementazione.

Ciao
midget è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 11:07   #9
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da midget
Quella pagina lo spiega in modo esauriente, a me funziona, ho appena provato.

Comunque in sintesi facendo il modulo si ottiene una correlazione tra il numero generato con solo i bit inferiori restituiti da rand() che "generalmente" sono molto meno casuali dei bit superiori. Ovviamente e' possibile che la specifica implementazione di rand() delle librerie che si vanno ad utilizzare abbia un comportamento diverso (eventualmente migliore).
Le formule indicate nella pagina citata servono per essere sicuri di utilizzare comunque tutti i bit generati da rand() a prescindere dall'implementazione.

Ciao
come fai a dire che a te funziona ?
se i bit inferiori sono meno casuali avrai una differenza sul numero di probabilitá
che riesca un dato numero. Non la totale assenza di quel numero.
O forse ho capito male ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 11:46   #10
midget
Senior Member
 
Iscritto dal: Feb 2001
Città: Firenze
Messaggi: 516
Quote:
Originariamente inviato da trallallero
come fai a dire che a te funziona ?
Mi riferivo alla pagina web, avevo capito che ti dava accesso negato.
I suggerimenti dati a quella pagina li ho gia' applicati con successo diverse volte.

Quote:
Originariamente inviato da trallallero
se i bit inferiori sono meno casuali avrai una differenza sul numero di probabilitá
che riesca un dato numero. Non la totale assenza di quel numero.
Si infatti, avrai un numero casuale meno "buono".

Questo pero' e' un punto fondamentale e da non trascurare quando si utilizzano numeri casuali in applicazioni in ambito sicurezza.

Analogamente se servono numeri casuali per la generazioni di "eventi" per testare un qualche tipo di procedura o algoritmo o altro, se i numeri generati non sono sufficientemente "buoni", tutta la procedura di test o di misurazione potrebbe risultare invalidata.

Sempre nella stessa pagina vengono fatti notare anche alcuni rischi di overflow da tenere presenti e risolvibili con alcuni cast espliciti.

Ciao
midget è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 12:11   #11
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da midget
Mi riferivo alla pagina web, avevo capito che ti dava accesso negato.
ah, avevo capito male

Comunque ho fatto un programmino di test su numeri da 0 a 9, 1000 volte e sembra tutto ok.
Codice:
Mat[0]: <97>
Mat[1]: <100>
Mat[2]: <96>
Mat[3]: <99>
Mat[4]: <101>
Mat[5]: <107>
Mat[6]: <82>
Mat[7]: <113>
Mat[8]: <110>
Mat[9]: <95>
tutti intorno alle 100 volte. Se fossero stati tutti 100 volte precise mi sarei preoccupato

ciao
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 12:48   #12
midget
Senior Member
 
Iscritto dal: Feb 2001
Città: Firenze
Messaggi: 516
Controlla anche in che sequenza ti escono i numeri, potrebbe avere delle periodicita'' che con il tuo test non vedi (su quel sito dice che potrebbero uscire alternati pari-dispari)

Ciao
midget è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 12:50   #13
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
alcuni usano
#define RAND_MAX 50
x = rand();

(non so se funziona)
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 13:02   #14
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
alcuni usano
#define RAND_MAX 50
x = rand();
No, RAND_MAX non lo puoi definire tu ... è una costante dichiarata nell'include stdlib.h ed è comunque "cablato" all'interno della rand().
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 13:05   #15
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da andbin
No, RAND_MAX non lo puoi definire tu ... è una costante dichiarata nell'include stdlib.h ed è comunque "cablato" all'interno della rand().
"cablato" ? cioé
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 13:28   #16
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da trallallero
"cablato" ? cioé
La funzione rand() usa certamente al suo interno il valore di RAND_MAX .... quindi il valore è "cablato" nel suo codice!

EDIT: alt, bisogna anche vedere come è stata implementata la rand()!!!
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet

Ultima modifica di andbin : 29-06-2006 alle 13:31.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 13:30   #17
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
un mio amico mi ha dato un codice con rand_max che effettivamente faceva restituire a rand un valore entro rand_max...
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 13:34   #18
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
Quote:
Originariamente inviato da AngeL)
come si fa a generare un numero random in C++?
Si consulta questa guida

E se si hanno idee, suggerimenti, avvisi, lamentele ecc., si è i benvenuti
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 13:41   #19
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
oops
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 14:02   #20
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da andbin
La funzione rand() usa certamente al suo interno il valore di RAND_MAX .... quindi il valore è "cablato" nel suo codice!
vabbé non é quello che impedisce la ridefinizione di RAND_MAX. Pensavo intendessi qualcos'altro

Ci ho provato (#define RAND_MAX 10) mi da giustamente un warning sulla define
ma poi non me la caga proprio
Non mi considera proprio
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e Dual Mode LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e...
SignalTrace: il sistema di Leonardo che ...
Meta rimuove 756.000 account under 16 in...
Twitch addestrerà l'IA generativa di Ama...
MOVA P50 Pro Ultra crolla a 449€ su Amaz...
Il trucco preferito dagli hacker per rub...
Sedie gaming ed ergonomiche SIHOO in off...
Microrobot nel terreno: un magnete li ri...
Uno studio smonta il mito dell'IA verde ...
Claude in Chrome diventa una sessione Co...
Edge e Chrome dicono addio a uBlock Orig...
Due motori, 1.600 cavalli, niente emissi...
Google fa sparire il pulsante Cerca ad a...
Le migliori offerte Amazon: Bose a 99€, ...
Needle 2: il modello IA agentico che sta...
SpaceXAI lancia Grok 4.6 e sfida GPT-5.6...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v