Ich bin froh hier zu sein! Ich habe eine Frage zu meinem Python Prp Programmierkurs, den ich habe zu kämpfen, um zu begreifen! Diese Zuweisung hat eine Frage und grundsätzlich muss ich die Funktion Power (x, n) definieren, die den Wert x auf die Potenz von n anheben muss! Ich bin nicht berechtigt, den Operator "**" zu verwenden, und wir können auch nur das verwenden, was in der Klasse gelernt wurde, also im Wesentlichen mit if-else-Anweisungen, boolescher Algebra, Range und for-Schleifen! Es muss nur ein Wert für die eingegebenen Werte zurückgegeben werden! Hilfe wird sehr geschätzt, da ich mit diesem Konzept kämpfe! Die Bereichsfunktion muss verwendet werden ... Danke! :)Verwenden der Python-Bereichsfunktion für die Multiplikation
Antwort
Try this:
def power(x, n):
result = 1
for i in range(n):
result *= x
return result
, die Ihnen die richtigen Antworten gibt. Beispiele:
>>> power(2, 3)
8
>>> 2**3
8
>>>
>>> power(4, 6)
4096
>>> 4**6
4096
Oder wenn Sie erlaubt die Mathematik-Modul zu verwenden, können Sie Negative und Fraktionen sind durch verallgemeinern zu:
def power(x, n):
return math.exp(math.log(x) * n)
Rückkehr:
>>> power(2, 0.5)
1.414213562373095
>>> power(2, -1)
0.5
>>>
Ja, das hat perfekt funktioniert, es ist so einfach in deinem Code! Mit was ich gekämpft habe, ist die eigentliche Logik hinter der Mathematik! Ich habe noch zwei Fragen, die ich jetzt versuchen werde, nachdem ich gesehen habe, wie du das gemacht hast! Danke :) –
Könnte außerhalb des Geltungsbereichs sein, aber was ist mit Negativen oder nicht ganzen Zahlen? – Simon
Verallgemeinern Sie es zu: 'math.exp (math.log (x) * n)'. – rassar
Durch Rekursion statt es ist hübscher.
def power(n, k):
return 1 if k == 0 else n*power(n, k-1)
oder
def power(n, k):
if k < 0:
return 1/power(n, abs(k))
return 1 if k == 0 else n*power(n, k-1)
Aber wenn Sie ein Range-Objekt verwenden müssen, können Sie es stattdessen aus der Addition aufbauen.
def multiply(n, k):
return sum(n for _ in range(k))
def power(n, k):
return sum(multiply(n, n) for _ in range(k-1)) if k != 0 else 1
sonst könnte man es machen wie
def power1(n, k):
return sum(n*n for _ in range(k-1)) if k != 0 else 1
- 1. Schnelle LAPACK/BLAS für die Matrix-Multiplikation
- 2. Wie funktioniert die Multiplikation für C++ enums?
- 3. Laufzeitfehler 1004 in Schleife für die Multiplikation der Spalte
- 4. Basistasche für Karatsuba Multiplikation
- 5. Vektorisierung für Array-Multiplikation
- 6. Multiplikation der Vektormatrix
- 7. Multiplikation
- 8. Berechnete Spalte für einfache Multiplikation?
- 9. Multiplikation, die zu 0 führt
- 10. Wie funktioniert die Lambda-Multiplikation?
- 11. Falsche Antwort Show für die Multiplikation mit Loops in Java
- 12. Reihenfolge der Multiplikation und Division
- 13. Präzision der Multiplikation von Floats
- 14. Multiplikation Rekursion
- 15. Wird der Compiler die Division in Multiplikation optimieren
- 16. Wie führe ich die richtige Schleife für Multiplikation Quiz
- 17. Wie manipuliert man Matrixaddition und -multiplikation für die euklidische Abstandsberechnung?
- 18. Variablen Multiplikation
- 19. Matrix Multiplikation
- 20. Float Multiplikation
- 21. Skalare Multiplikation?
- 22. Verwenden der Fourier-Analyse für die Zeitreihenvorhersage
- 23. Existenz der rechten Addition/Multiplikation in Rubin?
- 24. Numpy Transponieren Multiplikation Problem
- 25. Schnelle Matrix Multiplikation
- 26. String-Multiplikation
- 27. Multiplikation des Ticketwerts bei Änderung der Ticketmenge
- 28. Armadillo: Matrix-Multiplikation Verlust der Präzision
- 29. Liste Multiplikation
- 30. Multiplikation python
andere Wie Sie Ihre Hausaufgaben vollständig besiegt den Zweck zu tun. –