Alle möglichen kombinationen im array speichern



  • hallo,
    ich möchte gerne ein Array mit 0 und 1 befüllen.
    dabei sollen alle möglichen kombinationen verwendet werden bis die max. Spaltenanzahl erreicht ist.

    bsp.:

    Spaltenanzahl: 2

    Zeile 1: 0 0
    Zeile 2: 0 1
    Zeile 3: 1 0
    Zeile 4: 1 1
    

    entsprechend so weiter, so das mir alle möglichen kombinationen angezeigt werden;

    Das weiterrutschen der eins macht mir sorgen, gerade wenn ich mit einer spaltenzahl von 4 arbeite.

    hat wer ne idee?



  • Du erkennst doch sicher ein Schema? Schau mal, wie sich die einzelnen Ziffern verändern. Mit einer Schleife und Modulo bringst du sicher etwas zusammen. 😉

    0 0 0
    0 0 1
    0 1 0
    0 1 1
    1 0 0
    1 0 1
    1 1 0
    1 1 1
    


  • in der stl gibt es eine recht interessante funktion:
    std::next_permutation()

    ich weiß nicht ob dir das was hilft, aber schau dir mal eine doku dazu an



  • Ich verstehe nicht ganz was du machen willst.

    Aber eventuell sowas?

    int spalten = UserInput (); // oder eine konstante oder was auch immer
    int zeilen = Math.pow (2, spalten); // 2 ^ spalten  weiß grade den c++ syntax ned ;)
    char **array = new char*[zeilen];
    for (int i = 0; i < zeilen; i++)
    {
      array[i] = new char[spalten];
    }
    
    for (int i = 0; i < zeilen; i++)
    {
      for (int j = 0; j < spalten; j++)
      {
        array[i][j] = ((i >> j) & 1);
      }
    }
    
    for (int i = 0; i < zeilen; i++)
    {
      delete[] array[i];
    }
    delete[] array;
    

    Is nur Beispielcode. Sollte demnach noch verbessert werden (std::vector, array platt klopfen, schleifen anpassen, ...)

    Falls du was ganz anderes brauchst dann sind mehr Infos nötig 🙂

    Keros


Log in to reply