Geometrische Reihe Sequenzgenerator

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In der Mathematik ist eine geometrische Reihe eine Folge von Zahlen, bei der jedes nach dem ersten Glied durch Multiplikation des vorhergehenden Gliedes mit einer festen, nichtnullen Zahl, der sogenannten gemeinsamen Differenz, erhalten wird. In dieser Herausforderung werden Sie eine Funktion erstellen, die eine Liste initialisiert, die die Zahlen im angegebenen Bereich enthält, wobei start und end eingeschlossen sind und das Verhältnis zwischen zwei aufeinanderfolgenden Gliedern step beträgt.

Geometrische Reihe

Schreiben Sie eine Funktion namens geometric_progression, die drei Parameter annimmt:

  • end: eine Ganzzahl, die das Ende des Bereichs (inklusiv) repräsentiert
  • start: eine optionale Ganzzahl, die den Anfang des Bereichs (inklusiv) repräsentiert, mit einem Standardwert von 1
  • step: eine optionale Ganzzahl, die das gemeinsame Verhältnis zwischen zwei aufeinanderfolgenden Gliedern repräsentiert, mit einem Standardwert von 2

Die Funktion sollte eine Liste zurückgeben, die die Zahlen im angegebenen Bereich enthält, wobei das Verhältnis zwischen zwei aufeinanderfolgenden Gliedern step beträgt. Die Liste sollte mit start beginnen und mit end enden.

Wenn step gleich 1 ist, sollte die Funktion einen Fehler zurückgeben.

Sie sollten range(), math.log() und math.floor() und eine List Comprehension verwenden, um eine Liste der passenden Länge zu erstellen und den Schritt für jedes Element anzuwenden.

from math import floor, log

def geometric_progression(end, start=1, step=2):
  return [start * step ** i for i in range(floor(log(end / start)
          / log(step)) + 1)]
geometric_progression(256) ## [1, 2, 4, 8, 16, 32, 64, 128, 256]
geometric_progression(256, 3) ## [3, 6, 12, 24, 48, 96, 192]
geometric_progression(256, 1, 4) ## [1, 4, 16, 64, 256]

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie eine Funktion erstellen, die eine Liste initialisiert, die die Zahlen im angegebenen Bereich enthält, wobei das Verhältnis zwischen zwei aufeinanderfolgenden Gliedern step beträgt. Sie haben range(), math.log() und math.floor() und eine List Comprehension verwendet, um eine Liste der passenden Länge zu erstellen und den Schritt für jedes Element anzuwenden.