Ich möchte eine effiziente (effiziente Ausführungszeit optimiert für weniger Ausführungszeit) erstellen, ohne iTertools zu verwenden und nur integrierte Pythonfunktionen und -operatoren usw. (alles verwendbar ohne Import ) als selbst auferlegte Programmierherausforderung. ^ n natürliche Zahlen in binär. Die Ausgabe sollte in Tuple Format sein. Und unter den oben genannten Beschränkungen, iTertools.product ((0, 1), repep = 3) qualifiziert sich nicht als Lösung.
Code: Select all
from typing import Generator, Tuple
def powerset_indices(n: int) -> Generator[Tuple[int, ...], None, None]:
if not isinstance(n, int) or n < 1:
raise ValueError("The argument n must be a positive integer")
numeral = [0] * n
maxi = n - 1
for _ in range(1 Generator[Tuple[int, ...], None, None]:
if not isinstance(n, int) or n < 1:
raise ValueError("The argument n must be a positive integer")
for i in range(1 Generator[Tuple[bool, ...], None, None]:
if not isinstance(n, int) or n < 1:
raise ValueError("The argument n must be a positive integer")
places = [1
My original function is only slower than product
und es ist schneller als die beiden späteren Funktionen mit einem breiten Spielraum. Kann jemand eine Lösung schneller anbieten als Powerset_indices , während nur ein integriertes Python verwendet wird?>