Generieren und drucken Sie bei einem Array der Größe n alle möglichen Kombinationen von r Elementen im Array.

Beispiele:

Eingabe: arr [] = [1, 2, 3, 4],
            r = 2
Ausgabe: [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]

Für dieses Problem gibt es eine rekursive Lösung. Weitere Informationen finden Sie unter Drucken aller möglichen Kombinationen von r Elementen in einem bestimmten Array der Größe n Link. Wir werden dieses Problem in Python mit dem Modul itertools.combinations() lösen .

Was macht itertools.combinations()?

Es werden Teilfolgen von Elementen mit r Länge von der iterierbaren Eingabe zurückgegeben. Kombinationen werden in lexikografischer Sortierreihenfolge ausgegeben. Wenn die iterierbare Eingabe sortiert ist, werden die Kombinationstupel in sortierter Reihenfolge erstellt.



  • itertools.combinations (iterable, r):
    Es werden Tupel mit r-Länge in sortierter Reihenfolge ohne wiederholte Elemente zurückgegeben. Zum Beispiel Kombinationen ('ABCD', 2) ==> [AB, AC, AD, BC, BD, CD].
  • itertools.combinations_with_replacement (iterable, r):
    Es werden Tupel mit r-Länge in sortierter Reihenfolge mit wiederholten Elementen zurückgegeben. Zum Beispiel Kombinationen mit Ersetzung ('ABCD', 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
  • filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    from itertools import combinations
      
    def rSubset(arr, r):
      
        
        
        
        return list(combinations(arr, r))
      
    if __name__ == "__main__":
        arr = [1, 2, 3, 4]
        r = 2
        print (rSubset(arr, r))
    chevron_right
    
    
    filter_none
    
    

    Ausgabe:

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]

Dieser Artikel wurde von Shashank Mishra (Gullu) verfasst . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel mit Contrib.geeksforgeeks.org schreiben oder Ihren Artikel an Contribute@geeksforgeeks.org senden . Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.

Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten.