Python :: Aufgabe #324
4 Lösungen
Produkt der Werte eines Arrays
Fortgeschrittener - Python
von JKooP
- 21.02.2021 um 12:15 Uhr
Gegeben ist ein Array bestehend aus Integer-Werten. Aus diesen Werten soll das Produkt errechnet werden,
aber immer ausgenommen der Zahl, welche sich an der Stelle des Durchlaufs befindet.
Ist die letzte Stelle erreicht, geht’s von vorne weiter (Umlauf).
Beispiel:
Array = {1, 2, 3, 4}
Lösung:
Array = {24, 12, 8, 6}
Erklärung:
1. Durchlauf: 2 * 3 * 4 = 24 (ohne 1)
2. Durchlauf: 3* 4 * 1 = 12 (ohne 2)
3. Durchlauf: 4 * 1 * 2 = 8 (ohne 3)
4. Durchlauf: 1 * 2 * 3 = 6 (ohne 4)
Schreibe eine Funktion/Methode, mit der ein Array aus Integer-Werten aufgenommen werden kann und die Produkte als Integer-Array zurückgegen werden.
1. Aufgabe (leicht):
Verschachteln mehrerer Schleifen
2. Aufgabe (schwieriger):
das Ganze mit nur einem Schleifendurchlauf realisieren
Statt Arrays können, je nach Programmiersprache und Vorliebe, natürlich auch Listen oder Vektoren verwendet werden.
Viel Spaß
aber immer ausgenommen der Zahl, welche sich an der Stelle des Durchlaufs befindet.
Ist die letzte Stelle erreicht, geht’s von vorne weiter (Umlauf).
Beispiel:
Array = {1, 2, 3, 4}
Lösung:
Array = {24, 12, 8, 6}
Erklärung:
1. Durchlauf: 2 * 3 * 4 = 24 (ohne 1)
2. Durchlauf: 3* 4 * 1 = 12 (ohne 2)
3. Durchlauf: 4 * 1 * 2 = 8 (ohne 3)
4. Durchlauf: 1 * 2 * 3 = 6 (ohne 4)
Schreibe eine Funktion/Methode, mit der ein Array aus Integer-Werten aufgenommen werden kann und die Produkte als Integer-Array zurückgegen werden.
1. Aufgabe (leicht):
Verschachteln mehrerer Schleifen
2. Aufgabe (schwieriger):
das Ganze mit nur einem Schleifendurchlauf realisieren
Statt Arrays können, je nach Programmiersprache und Vorliebe, natürlich auch Listen oder Vektoren verwendet werden.
Viel Spaß
Lösungen:
Python-Code
import operator from functools import reduce from itertools import combinations from typing import List from typing import Tuple from strongtyping.strong_typing import match_typing @match_typing def product_array(array: List[int]) -> Tuple[int]: return tuple([reduce(operator.mul, elem) for elem in combinations(array, len(array) - 1) ][::-1])
Python-Code
""" #324: Produkt der Werte eines Arrays Gegeben ist ein Array bestehend aus Integer-Werten. Aus diesen Werten soll das Produkt errechnet werden, aber immer ausgenommen der Zahl, welche sich an der Stelle des Durchlaufs befindet. Ist die letzte Stelle erreicht, geht’s von vorne weiter (Umlauf). """ import operator import functools def pruef(arr): for _ in arr: pause = arr[0] arr.pop(0) print(functools.reduce(operator.mul, arr, 1)) arr.append(pause) def main(): pruef([1, 2, 3, 4]) if __name__ == '__main__': main()
Python-Code
liste = [1, 2, 3, 4] produkte = [] for e in liste: produkt = 1 liste.append(liste.pop(0)) for i in range(0, len(liste) - 1): produkt *= liste[i] produkte.append(produkt) print(produkte)
Python-Code
a = [1,2,3,4] b = [] for i in range(len(a)): b.append(a[1]*a[2]*a[3]) a.append(a.pop(0)) print(b)