Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C++] Combinazioni di vettori

    Ciao, io sto cercando di fare un semplice programma che dato un array poniamo di 5 caratteri, mi resistituisca tutte le sue possibili combinazioni.

    Es:

    abcd, abdc, adbc, adbc....

    io avrei pensato di prendere il primo carattere tenerlo fermo, mentre l'ultimo tutte le volte si spostava sinistra, ma questo mi da solamente alcune delle combinazioni possibili...

    Qualcuno sa darmi una dritta su come ottenere tutte le combinazioni?


    Grazie

  2. #2
    Fai dei cicli for annidati per far scorrere le varie lettere...
    salvandoti le combinazioni !!!!
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  3. #3
    si ma questi cicli in base a cosa li devo fare, ci arà un procedimento logico per capire qaundo li avrò fatte tutte le combinazioni?

    Poi per far si che non si ripetano le combinazioni dovreifarvarle tutte nelle variabili e tutte le volte scorrere l'array per vedere che non si ripeta... non penso sia il miglior modo per fare questo, sia per il tempo sia per l'ffidabilità in quanto non saprei se ho ottenuto tutte le combinazioni possibili...

  4. #4

    Ekko quì la soluzione

    Ho scritto velocemente questo cod:

    #include <iostream.h>

    const int N = 5;

    void main () {
    char c[N] = {'a', 'b', 'c', 'd', 'e'};
    for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
    for (int z = 0; z < N; z++) {
    for (int x = 0; x < N; x++) {
    for (int y = 0; y < N; y++) {
    cout << c[i] << c[j] << c[z] << c[x] << c[y] << endl;
    }
    }
    }
    }
    }
    }

    Fa quello che dici, ho inizializzato i 5 caratteri dandogli a b c d e e se lo compili e lo esegui stampa tutte le combinazioni possibili bye! :metallica

  5. #5
    ma se io ho piu' di 5 lettere non c'e' un modo per creare for dinamici ???

    o mi tocca usare
    if (stringa == 6) {
    for(...)
    }
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  6. #6

    Hummm

    Capisco il problema, a questo punto si dovrebbe pensare ad un algoritmo pèiù efficente ma io ora devo scappare, se il tuo problema riguarda 5 caratteri quel codice va più che bene, se il numero dei caratteri è variabile bhè allora conviene pensare ad un'altra soluzione byez! :metallica

  7. #7
    con un qualcosa di ricorsivo ???
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  8. #8
    si ci vorrebbe una funzion ricorsiva penso, però non riesco a capire la logica del programma, io protrei fare un programma pensato per 5 caratteri, ma s diventassero 4 o 6, mi servirebbe un codice che andasse bene per questi casi... ma purtroppo non riesco proprio a capire come fare



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 © 2025 vBulletin Solutions, Inc. All rights reserved.