Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142

    [C++] Come randomizzare un carattere

    Salve a tutti di nuovo io, avrei bisogno di una delucidazione, vorrei sapere se esiste il metodo in c++ di randomizzare i caratteri e se si qualeprocedura usare? è simile a questa o no?
    codice:
    srand(time(NULL))
    centro = rand % 10
    centro++
    questo per randomizzare numeri da 1 a 10 ma con i caratteri quale procedura usare?? sempre se esiste.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    Ragazzi io ho provato alla stessa maniera come sopra solo che l ho fatto su un vettore di caratteri voi che dite è gisto così?

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Ma tu cosa vuoi ottenere?

    "Randomizzare un carattere" significa tutto e niente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    Siccome voglio randomizzare un carattere per il quicksort e vorrei sapere se si fa allo stesso modo come nei numeri

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Originariamente inviato da Gybra
    Siccome voglio randomizzare un carattere per il quicksort e vorrei sapere se si fa allo stesso modo come nei numeri
    Ti avevo gia' detto che "randomizzare un carattere" non voleva dire molto, ma con questa spiegazione e' ancora peggio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    Ok scusami ma io volevo sapere se era possibile generare un carattere in maniera casuale, dato che lo si può fare con i numeri, adesso hai capito cosa intendo?

  7. #7
    Lo si fa con rand alla stessa maniera che con i numeri; considerando che un char ha un valore compreso tra -128 e 127, puoi usare questo codice:
    codice:
    carattere = rand() % 256 - 128;
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    ok grazie 1000!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    Ragazzi adesso devo fare un quicksort per ordinare caratteri, il solo problema sta nel randomizzare un carattere presente nel vettore cosi da poter far funzionare il quicksort ecco il codice:
    codice:
    void quicksort(tvettchar &vc, int inf, int sup){
      int I,J;
      char centro;
      
      srand(time(NULL));
      
      if (inf<sup) {
        // Partenza: i parte dal primo elemento del vettore, j dall'ultimo
        I = inf; J = sup;
      
        // Il centro è l'elemento medio del vettore
        centro = rand() %  - ;//non so come fare per randomizzare un carattere all interno del vettore
     
        do{
          // Finché l'elemento generico i-esimo a sinistra del pivot
          // è minore del centro, incrementa i
          if(vc[I] < vc[centro]) 
            I++;
          else
          // Finché l'elemento generico j-esimo a destra del centro
          // è maggiore del centro, decrementa j
          if(vc[J] > vc[centro]) 
            J--;
          else
          // Altrimenti, scambia tra loro l'elemento i-esimo e quello j-esimo
          if(I <= J) {
            scambia(vc[I],vc[J]);
            I++, J--;
          }
        } while (I <= J);  // Cicla finché i e j non si incontrano
     
        // Richiama il quick sort sul primo sottovettore
        quicksort(vc,inf,J);
     
        // Richiama il quick sort sul secondo sottovettore
        quicksort(vc,I,sup);
      }
    }

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.