Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencari Akar Kuadrat Integer dalam Python: Kaedah Mana Yang Terbaik?

Bagaimana untuk Mencari Akar Kuadrat Integer dalam Python: Kaedah Mana Yang Terbaik?

DDD
Lepaskan: 2024-10-28 06:03:32
asal
780 orang telah melayarinya

How to Find Integer Square Roots in Python: Which Method is Best?

Mengira Punca Kuasa Dua Integer dalam Python

Dalam Python, mencari punca kuasa dua integer yang tepat boleh menjadi satu cabaran. Walau bagaimanapun, terdapat beberapa kaedah yang tersedia untuk tugasan ini.

Satu pendekatan mudah ialah menggunakan kaedah Newton, yang secara berulang memperhalusi anggarannya bagi punca kuasa dua:

<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

Kaedah ini mengira dengan tepat punca kuasa dua integer terbesar, yang kemudiannya boleh disahkan dengan mendarabnya dengan sendirinya untuk menyemak sama ada ia sepadan dengan nombor input.

Kaedah alternatif ialah menggunakan pembahagian integer untuk menyemak petak sempurna secara berulang:

<code class="python">def isqrt2(n):
    i = 1
    while i * i <= n:
        i += 1
    return i - 1</code>
Salin selepas log masuk

Kaedah ini mempunyai struktur yang lebih ringkas tetapi secara amnya lebih perlahan daripada kaedah Newton untuk integer besar.

Akhir sekali, untuk Python versi 3.8 dan kemudian, modul matematik menyediakan fungsi isqrt terbina dalam yang mengira tepat punca kuasa dua integer dengan cekap.

<code class="python">from math import isqrt

x = isqrt(49)  # returns 7</code>
Salin selepas log masuk

Dengan memilih kaedah yang sesuai berdasarkan kecekapan yang diingini dan versi Python, anda boleh mencari punca kuasa dua integer dengan tepat dalam pelbagai senario.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Akar Kuadrat Integer dalam Python: Kaedah Mana Yang Terbaik?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan