E' possibile dato un range ad es. 60->90 generare TOT comb volute di 10 elementi?
Analogamente a quanto avviene con funzioni specifiche di suffle in php ad esempio...
Grazie agli/alle esperti/e che interverranno
E' possibile dato un range ad es. 60->90 generare TOT comb volute di 10 elementi?
Analogamente a quanto avviene con funzioni specifiche di suffle in php ad esempio...
Grazie agli/alle esperti/e che interverranno
Debbo però mettere un inizio diverso da 1...
cout << rand() % 90;
così mi genera numeri da 1 a 90
se volessi generarli solo da 23 a 90 ?
Grazie a tutti/e
rand() % 68 + 23;
ps: rand() % 90 da numeri da 0 a 89
sbagliata...
io per fare un range da 11 a 40
farei così:
91-11= 80
+ 40
per avere:
analogamente al tuo...
rand() % 68 + 23;
rand() % 80 + 40;
ma invece non torna...
quindi non ho capito la logica... dell'espressione
me la potresti spiegare? Così da poterne creare altre a seconda casi diversi?
Grazie 1000 comunque
Adesso però avrei quest'ultima questione...
if (numeri!=0) {
cout << "\n";
cout << "Numeri:";
cout << "\n\n";
for (k=0;k<combinazioni;k++) {
for (z=0;z<numeri;z++) {
//numero=rand() % 90;
cout << numero << ",";
//cout << "\n";
}
cout << "\n";
}
//METTO IN VECTOR... insiemecombinazioni x elaborazioni successive...
//.................................................
}
Il problema è essenzialmente questo...
In vector insiemecombinazioni dovrei mettere elementi stringa del tipo "1,4,17,28,30 ecc.."
da riprendere e scomporre successivamente...
mentre ora come ora posso mettere solo singoli numeri numero appunto...
mi manca il passaggio per formare singole stringhe di TOT numeri prima di inserimento nell'array...
Grazie per gli eventuali aiutini che vorrete darmi in tal senso
la logica è questa..
se devi avere dei numeri da x a y e il generatore di numeri casuali va da 0 a MAX_RAND devi usare il modulo per diminuire il range no?
quindi metti il modulo.. i numeri vanno ora da 0 a N-1 (N è il numero del modulo)
se però tu hai un estremo sinistro > 0 devi sommare l'estremo sinistro al risultato quindi ora saranno numeri da 0 + x a N - 1 + x
però tu a sinistra volevi N quindi nel modulo metto N - x
così diventa N - x - 1 + x, le x vanno via et voilà
prova con carta e penna e vedrai che trovi il sistema giusto
if (numeri!=0) {
cout << "\n";
cout << "Numeri:";
cout << "\n\n";
for (k=0;k<combinazioni;k++) {
for (z=0;z<numeri;z++) {
//numero=rand() % 90;
numero = rand() % finale + inizio;
cout << numero << ",";
//cout << "\n";
string numero2;
numero2 = intToString(numero);
combinazione.push_back(numero2);
}
insiemecombinazioni.push_back(combinazione);
cout << "\n";
}
for (i=0; i<insiemecombinazioni.size();i++){
cout << insiemecombinazioni[i]+"***";
}
Il push mi par di capire non si può applicare ad un oggetto vector...
ma come posso fare in alternativa?
è possibile trasformare ogni vector combinazione in una stringa?
Scusate se ho detto un eresia...
Come si fa a trasformare un'intero vector in stringa?
Es.
ho un vector di 10 elementi seprati da virgola...
VECTOR = (1,2,3,4,5,6,7,8,9,10);
io lo devo trasformare in :
STRINGA ="1,2,3,4,5,6,7,8,9,10";
come posso fare?
tnx
Non importa + thanks
Potresti fare alcune cose:Originariamente inviato da freetom
Come si fa a trasformare un'intero vector in stringa?
[...]
Non importa + thanks
1)
aprire la discussione DOPO aver affrontato il problema, e non PRIMA, così da evitare di concluderla passati 5 minuti (senza nemmeno indicare la soluzione, peraltro);
2)
usare il tag "CODE" per formattare il codice nel forum, altrimenti è illeggibile;
3)
aprire una nuova discussione quando il problema è diverso dal precedente.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...