Bagaimana untuk Mencari Akar Kuasa Dua Integer Nombor dalam Python?

Barbara Streisand
Lepaskan: 2024-10-31 13:12:47
asal
315 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!