Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Generazione casuale di numeri dato un certo range...

    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

  2. #2
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Arrivato fin qui...

    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


  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    rand() % 68 + 23;

    ps: rand() % 90 da numeri da 0 a 89

  4. #4
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    andando secondo logica...

    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


  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    scusa questo credo di averlo capito... e risolto...

    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


  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    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

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    rse ci sono... ma mi manca un ultimo passettino...

    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...




  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    In sostanza mi serve...qualcosa di analogo a implode... di php...

    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


  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    ce l'ho fatta da solo! :-)

    Non importa + thanks



  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Originariamente inviato da freetom
    Come si fa a trasformare un'intero vector in stringa?
    [...]
    Non importa + thanks
    Potresti fare alcune cose:

    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.