Python :: Aufgabe #315
1 Lösung
Gleichwertige Zahlenpaare zählen/auflisten
Anfänger - Python
von JKooP
- 09.01.2021 um 16:17 Uhr
Erstelle eine Methode/Funktion, mit der es möglich ist, aus einem beliebig großen Array/Liste
die Anzahl aller gleichwertigen Zahlenpaare auszugeben.
Wer möchte, kann natürlich die Zahlenpaare bzw. Indizes zusätzlich mit ausgeben.
Beispiele:
[1, 2, 3, 1, 1, 3] => 4 gleiche Zahlenpaare
mit den Indizes: (0, 3), (0, 4), (3, 4), (2, 5)
und den Lösungen: (1, 1), (1, 1), (1, 1), (3, 3)
[1, 1, 1, 1] => 6 gleiche Zahlenpaare
mit den Indizes: (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)
und den Lösungen: (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)
[1, 2, 3, 4] => 0 gleiche Zahlenpaare
Hier gibt es verschiedene Herangehensweisen:
Lösung 1 (einfach): Verschachteln mehrerer Schleifen
Lösung 2 (schwieriger): nur eine Schleife
Vielleicht kann man es sogar mittels Fakultät und Binomialkoeffizient berechnen?!
Ich habe dafür ad hoc auch noch keine Lösung. Es gibt hier bestimmt die eine oder andere gute Idee.
Viel Spaß
die Anzahl aller gleichwertigen Zahlenpaare auszugeben.
Wer möchte, kann natürlich die Zahlenpaare bzw. Indizes zusätzlich mit ausgeben.
Beispiele:
[1, 2, 3, 1, 1, 3] => 4 gleiche Zahlenpaare
mit den Indizes: (0, 3), (0, 4), (3, 4), (2, 5)
und den Lösungen: (1, 1), (1, 1), (1, 1), (3, 3)
[1, 1, 1, 1] => 6 gleiche Zahlenpaare
mit den Indizes: (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)
und den Lösungen: (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)
[1, 2, 3, 4] => 0 gleiche Zahlenpaare
Hier gibt es verschiedene Herangehensweisen:
Lösung 1 (einfach): Verschachteln mehrerer Schleifen
Lösung 2 (schwieriger): nur eine Schleife
Vielleicht kann man es sogar mittels Fakultät und Binomialkoeffizient berechnen?!
Ich habe dafür ad hoc auch noch keine Lösung. Es gibt hier bestimmt die eine oder andere gute Idee.
Viel Spaß
Lösungen:
Python-Code
""" # 315 Gleichwertige Zahlenpaare zählen/auflisten Erstelle eine Methode/Funktion, mit der es möglich ist, aus einem beliebig großen Array/Liste die Anzahl aller gleichwertigen Zahlenpaare auszugeben. """ arr = [] ar1 = [] ar2 = [] sta = 0 while True: zahl = int(input("Bitte positive Ganzzahl eingeben, negative Zahl = Eingabeende: ")) if zahl >= 0: arr.append(zahl) else: break # arr = [1, 2, 3, 1, 1, 3] # arr = [1, 1, 1, 1] # arr = [1, 2, 3, 4] for i in range(0, len(arr) - 1): sta += 1 for j in range(sta, len(arr)): if arr[i] == arr[j]: ar1.append([i, j]) ar2.append([arr[i], arr[j]]) j += 1 else: continue print(ar1) print(ar2)