|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
|
[C++] Generazione random number
Rieccomi....avrei bisogno di una mano a scrivere del codice per la creazione di un numero casuale. Sono al corrente di rand e srand, ma vi spiego il problema:
Codice:
int random(){
int number = 100;
srand(time(NULL));
int randomNumber = rand() % number + 1;
return randomNumber;
}
Codice:
... int numero1 = random(); int numero2 = random(); int numero3 = random(); int numero4 = random(); int numero5 = random(); ... Cerco un modo per risolvere questo quesito.
__________________
Vendo...nulla. Cerco...la felicità. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
srand va invocato una sola volta: imposta il seme della sequenza di numeri pseudo-casuali.
La tua funzione lo invoca molte volte "nello stesso istante", quindi con lo stesso valore fornito da time, ottenendo sempre lo stesso numero: il primo della sequenza pseudo-casuale inizializzata. Esempio corretto, generazione di 100 numeri pseudo-casuali, range 1-100: Codice:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
{
srand((unsigned)time(NULL));
int x = 0, nMax_rand = 100;
while( x++ < 100 )
{
printf( "%i\t", rand() % nMax_rand + 1 );
if( x % 5 == 0 )
printf("\n");
}
}
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
|
Questo è il mio metodo:
Codice:
/*
* This method returns a random number accordingly to
* the entries of the passed table name in the database
*/
int Database::getRandomNumber(string tableName) {
string aQuery = "SELECT number, count(*) FROM " + tableName + ";";
sqlite3_stmt *pStmt;
char* ptAQuery = &aQuery[0];
if (sqlite3_prepare_v2(databaseConnection, ptAQuery, -1, &pStmt, 0)
!= SQLITE_OK) {
cerr << "db error (preparev2 in getRandomNumber): " << sqlite3_errmsg(
databaseConnection) << endl;
}
if (sqlite3_step(pStmt) != SQLITE_ROW) {
cerr << "db error (step in getRandomNumber): " << sqlite3_errmsg(
databaseConnection) << endl;
}
int number = sqlite3_column_int(pStmt, 0);
srand(time(NULL));
int randomNumber = rand() % number + 1;
sqlite3_finalize(pStmt);
number = 0;
return randomNumber;
}
Come faccio?
__________________
Vendo...nulla. Cerco...la felicità. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
|
!!!!!funziona. Grazie mille!
__________________
Vendo...nulla. Cerco...la felicità. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:32.




















