Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1

    [c]Generare codice alfanumerico

    Salve a tutti..
    ...sono nuovo nel mondo della programmazione ..sto iniziando con il C , mà sono ancora un newbeby .. XD..
    ..allora spiego brevemente di cosa avrei bisogno...

    In poche parole vorrei fare un programmino che mi generi precisamente tutte le possibili combinazioni di stringhe di "N"caratteri alfanumerici(va bè diciamo che a me serve di 24 caratteri es: ab2c1def654ytg884fg5qrr9, ) con i caratteri dell'alfabeto in minuscolo e i numeri da 0 a 9...

    ..se cortesemente mi postate codice o mi spiegate come fare ve ne sarei grato...

    ringrazio anticipamente !

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    68
    In pratica un BruteForce? è semplicissimo fai dei cicli for in questo modo

    codice:
    for(int a = 0;a<lunghezza_array_caratteri;a++){
    
    for(int b = 0;b<lunghezza_array_caratteri;b++){
    
    for(int c = 0;c<lunghezza_array_caratteri;c++){
    
    for(int d = 0;d<lunghezza_array_caratteri;d++){
    
    string stringa = array_caratteri[a]+array_caratteri[b]+array_caratteri[c]+array_caratteri[d];
    
    cout << "Stringa :" << stringa <<endl;
    
    }
    
    }
    
    }
    
    
    }
    Dove array_caratteri non è altro che un array con contenuti i caratteri che vuoi tu, ad esempio :
    codice:
    char array_caratteri[] = {0,'a','b','c','A','B','C'};
    questo è C/C++ portarlo in puro C è semplice

    codice:
    for(int a = 0;a<lunghezza_array_caratteri;a++){
    
    for(int b = 0;b<lunghezza_array_caratteri;b++){
    
    for(int c = 0;c<lunghezza_array_caratteri;c++){
    
    for(int d = 0;d<lunghezza_array_caratteri;d++){
    
    printf("%c%c%c%c",array_caratteri[a],array_caratteri[b],array_caratteri[c],array_caratteri[d]);
    
    
    }
    
    }
    
    }
    
    
    }

  3. #3
    ciao ..ti ringrazio per la tempestività della risposta ! ..
    ..per dirla meglio si potrebbe fare in modo che al posto di stamparle a video con il solito printf si potrebbe in quale modo salvare l'output in un file di testo ?


    ..grazie ancora !

  4. #4
    ..vorrei anche sapere se è possibile far uscire solo numeri diversi all'interno della stessa stringa..perchè altrimenti la stingra quando si incremente inizia da 0000000000000122/124/125 ecc...

    ..intanto ecco come ho fatto il programmino solo che ho paura che qui si può sintetizzare il tutto ...scusate ma sono all'inizio

    codice:
    #include<stdio.h>  
    
    main() 
    
    {    
          int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;     
          char array_caratteri[]=
    {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};  
    
        for(a = 0;a<36;a++){  
        for(b = 0;b<36;b++){  
        for(c = 0;c<36;c++){  
        for(d = 0;d<36;d++){  
        for(e = 0;e<36;e++){  
        for(f = 0;f<36;f++){  
        for(g = 0;g<36;g++){  
        for(h = 0;h<36;h++){  
        for(i = 0;i<36;i++){  
        for(j = 0;j<36;j++){  
        for(k = 0;k<36;k++){  
        for(l = 0;l<36;l++){  
        for(m = 0;m<36;m++){  
        for(n = 0;n<36;n++){  
        for(o = 0;o<36;o++){  
        for(p = 0;p<36;p++){  
        for(q = 0;q<36;q++){  
        for(r = 0;r<36;r++){  
        for(s = 0;s<36;s++){  
        for(t = 0;t<36;t++){  
        for(u = 0;u<36;u++){  
        for(v = 0;v<36;v++){  
        for(w = 0;w<36;w++){  
        for(x = 0;x<36;x++){  
    
    printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",array_caratteri[a],array_caratteri[b],array_caratteri[c],array_caratteri[d],array_caratteri[e],array_caratteri[f],array_caratteri[g],array_caratteri[h],array_caratteri[i],array_caratteri[j],array_caratteri[k],array_caratteri[l],array_caratteri[m],array_caratteri[n],array_caratteri[o],array_caratteri[p],array_caratteri[q],array_caratteri[r],array_caratteri[s],array_caratteri[t],array_caratteri[u],array_caratteri[v],array_caratteri[w],array_caratteri[x]);   
    
    
    }  }  }   } } } } } } } } } } } } } } } } } } } } }  }

  5. #5
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    Originariamente inviato da networkman
    ..vorrei anche sapere se è possibile far uscire solo numeri diversi all'interno della stessa stringa..
    ma per numeri intendi numeri e lettere giusto? :master:
    così facendo non fai altro che chiedere tutte le combinazioni senza ripetizione in gruppi da 24 (link )
    una domanda simile è stata già fatta qualche giorno fa

    copiando il tuo codice
    codice:
    #include<stdio.h>
    main() 
    
    {    
          int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;     
          char box[]=
    {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m',
    'n','o','p','q','r','s','t','u','v','w','x','y','z'};  
    
        for(a = 1;a<36;a++)
        for(b = a+1;b<36;b++)
        for(c = b+1;c<36;c++)  
        for(d = c+1;d<36;d++)  
        for(e = d+1;e<36;e++)  
        for(f = e+1;f<36;f++)  
        for(g = f+1;g<36;g++)  
        for(h = g+1;h<36;h++)  
        for(i = h+1;i<36;i++)  
        for(j = i+1;j<36;j++)  
        for(k = j+1;k<36;k++)  
        for(l = k+1;l<36;l++)  
        for(m = l+1;m<36;m++)  
        for(n = m+1;n<36;n++)  
        for(o = n+1;o<36;o++)  
        for(p = o+1;p<36;p++)  
        for(q = p+1;q<36;q++)  
        for(r = q+1;r<36;r++)  
        for(s = r+1;s<36;s++)  
        for(t = s+1;t<36;t++)  
        for(u = t+1;u<36;u++)  
        for(v = u+1;v<36;v++)  
        for(w = v+1;w<36;w++)  
        for(x = w+1;x<36;x++)  
    printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",box[a],
    box[b],box[c],box[d],box[e],box[f],box[g],box[h],box[i],box[j],box[k],box[l],
    box[m],box[n],box[o],box[p],box[q],box[r],box[s],box[t],box[u],box[v],box[w],box[x]);   
     }

  6. #6
    ma per numeri intendi numeri e lettere giusto?
    ciao!..sisi scusa..intendo numeri e lettere...

    ..senti ma in questa maniera mi genera tutte le combinazioni possibili di numeri e lettere ?... forse prima mi sono espresso male quando ho detto
    ..vorrei anche sapere se è possibile far uscire solo numeri diversi all'interno della stessa stringa
    cioè in pratica io vorrei fare un programmino che mi generi con le lettere dell'alfabeto in minuscolo e i numeri .. tutte le combinazioni possibili in una stringa di 24 numeri...

    ...però bisogna anche dire che ci sono quelle stringhe fatte magari da xxx1-xxxx-1xxx-xxxx-xxxx dove si ripete un numero oppure una lettera .. magari anche 3 / 4 volte...

    ..non se se ti è chiaro il concetto

  7. #7
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    Originariamente inviato da networkman
    ...però bisogna anche dire che ci sono quelle stringhe fatte magari da xxx1-xxxx-1xxx-xxxx-xxxx dove si ripete un numero oppure una lettera .. magari anche 3 / 4 volte...
    si ci sono stringhe che ripetono lo stesso carattere, il problema è che non si è capito se le vuoi o no
    col mio codice non ci sono

  8. #8
    XDXD.. allora io quelle stringhe dove si ripete facciamo 3 volte lo stesso numero o lettera le voglio XD... e solo che con non volgio aspettare tutto quel tempo con gli zeri che non servono..cosa che giustamente nel tuo progr non accade...


    ..in definitiva il tuo prog da una parte escllude un problema dall'altra ne crea un'altro !

  9. #9
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    Originariamente inviato da networkman
    XDXD.. allora io quelle stringhe dove si ripete facciamo 3 volte lo stesso numero o lettera le voglio XD...


    io ti ho dato l'algoritmo combinatorio delle combinazioni senza ripetizione.
    definendo un massimo di 3 ripetizioni nello stesso gruppo, essendo il gruppo molto lungo (24) l'algoritmo verrebbe inutilmente macchinoso

    hai pensato al casino che di dovrebbe fare per contare le occorrenze di un carattere nel gruppo?
    si dovrebbe fare una funzione che prende in input tutto il gruppo di volta in volta e lo stampa se le occorenze di CIASCUN carattere sono <4

    si potrebbe anche fare ma mi sembra che tu voglia curare più l'aspetto "estetico" dei codici che la parte algoritmica vera.. :master:

  10. #10
    ..dovrei curare sopratutto l'aspetto estetico XD...

    per capirci mi servirebbero sia stringhe di codice in questo modo abc1-23ef-xxxx-xxxx-xxxx
    che in quest'altro modo 23ef -abc1-xxxx-xxxx-xxxx e via dicendo..per intenderci

    ...cioè indefinitiva il programma è un pokino complesso e dato che sono ancora un pirncipiante..mi sono rivolto qui ^^ ...

    ..mi servirebbero tutte le combinazioni possibili.. ovvero (24^36) meno tutte le combinazioni inutili..del tipo con più di 3 alfanumeri che si ripetono...

    ..ci servirebbe non so una formula matematica per escludere tali valori o non so robba di algoritmi..

    ...non credo sia impossibile ?

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.