Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencari Akar Kuasa Dua Integer Nombor dalam Python?

Bagaimana untuk Mencari Akar Kuasa Dua Integer Nombor dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-10-31 13:12:47316semak imbas

How to Find the Integer Square Root of a Number in Python?

Mencari Akar Kuasa Dua Integer dalam Python

Python menyediakan beberapa cara untuk mengira punca kuasa dua nombor. Walau bagaimanapun, tiada satu pun daripada kaedah ini secara langsung mengembalikan punca kuasa dua integer tanpa anggaran atau pengecualian.

Satu pendekatan, seperti yang dicadangkan dalam coretan kod awal, ialah menggunakan fungsi math.sqrt() dan bulatkan hasilnya kepada integer terdekat. Walau bagaimanapun, pendekatan ini mungkin tidak tepat untuk integer yang besar.

Kaedah yang lebih tepat melibatkan penggunaan kaedah Newton, iaitu teknik lelaran untuk mencari punca persamaan. Fungsi Python berikut melaksanakan kaedah Newton untuk punca kuasa dua integer:

<code class="python">def isqrt(n):
    x = n
    y = (x + 1) // 2
    while y < x:
        x = y
        y = (x + n // x) // 2
    return x</code>

Fungsi ini memulakan dua pembolehubah, x dan y, dan mengemas kininya secara berulang sehingga penumpuan. x mewakili anggaran terbaik punca kuasa dua integer, manakala y ialah anggaran kemas kini yang menggabungkan kedua-dua nilai x dan pembahagian integer n dengan x. Lelaran berhenti apabila y menjadi kurang daripada x, menunjukkan bahawa pemurnian selanjutnya tidak diperlukan.

Nilai yang dikembalikan bagi isqrt() ialah integer terbesar yang kuasa duanya tidak melebihi n. Untuk mengesahkan sama ada hasilnya ialah punca kuasa dua integer tepat, darabkan hasilnya dengan dirinya sendiri dan bandingkan dengan n. Ambil perhatian bahawa fungsi ini mengendalikan petak tidak sempurna mengikut reka bentuk, tidak menimbulkan pengecualian.

Walaupun beberapa algoritma lain wujud untuk mengira punca kuasa dua integer, kaedah Newton secara amnya dianggap menawarkan keseimbangan ketepatan, kelajuan dan kesederhanaan.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Akar Kuasa Dua Integer Nombor dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn