Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man genau bestimmen, ob eine Zahl ein perfektes Quadrat ist?

Wie kann man genau bestimmen, ob eine Zahl ein perfektes Quadrat ist?

Barbara Streisand
Freigeben: 2024-11-08 19:54:02
Original
1044 Leute haben es durchsucht

How to Accurately Determine if a Number is a Perfect Square?

Perfekte Quadrate finden: Eine umfassende Methode

Die Bestimmung, ob eine Zahl ein perfektes Quadrat ist, mag einfach erscheinen, aber sich auf Gleitkommaoperationen zu verlassen, kann unzuverlässig sein. Für die Genauigkeit ist es entscheidend, ganzzahlige Ansätze wie den unten dargestellten zu verwenden.

Der Algorithmus nutzt die babylonische Methode der Quadratwurzelberechnung. Es schätzt die Quadratwurzel iterativ, indem es den Durchschnitt der aktuellen Schätzung und der Zahl dividiert durch diese Schätzung berechnet.

def is_square(apositiveint):
  x = apositiveint // 2
  seen = set([x])
  while x * x != apositiveint:
    x = (x + (apositiveint // x)) // 2
    if x in seen: return False
    seen.add(x)
  return True
Nach dem Login kopieren

Diese Methode konvergiert nachweislich für jede positive ganze Zahl und wird angehalten, wenn die Zahl nicht perfekt ist Quadrat, da die Schleife auf unbestimmte Zeit andauern würde.

Hier ist ein Beispiel:

for i in range(110, 130):
   print i, is_square(i)
Nach dem Login kopieren

Ausgabe:

110 False
111 False
112 False
113 False
114 False
115 False
116 False
117 False
118 False
119 False
120 True
121 True
122 False
123 False
124 False
125 True
126 False
127 False
128 False
129 True
Nach dem Login kopieren

Wie oben gesehen, identifiziert der Algorithmus korrekt perfekte Quadrate, B. 120 und 125, wobei nicht perfekte Quadrate wie 111 und 122 ausgeschlossen werden.

Bei großen ganzen Zahlen können Gleitkomma-Ungenauigkeiten erheblich werden und möglicherweise zu fehlerhaften Ergebnissen führen. Um Präzision zu gewährleisten, ist es ratsam, für diese Aufgabe keine Gleitkommaoperationen zu verwenden.

Das obige ist der detaillierte Inhalt vonWie kann man genau bestimmen, ob eine Zahl ein perfektes Quadrat ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage