Apakah rasio emas ditentukan dengan Python?

Apakah ada cara untuk mendapatkan rasio emas, phi, dalam modul python standar? Saya mengetahui e dan pi di modul math, namun saya mungkin melewatkan phi yang didefinisikan di suatu tempat.


person dwitvliet    schedule 08.08.2014    source sumber
comment
Ya, pencarian cepat di Google mengungkapkan bahwa scipy memilikinya: docs.scipy.org/doc /scipy/reference/constants.html   -  person user4815162342    schedule 09.08.2014
comment
Saya pikir ini adalah pertanyaan yang bagus karena saya juga menanyakan hal yang sama. @Pisang   -  person O.rka    schedule 27.07.2015


Jawaban (2)


scipy.constants mendefinisikan rasio emas sebagai scipy.constants.golden. Ini tidak didefinisikan di perpustakaan standar, mungkin karena mudah untuk mendefinisikannya sendiri:

golden = (1 + 5 ** 0.5) / 2
person Lynn    schedule 08.08.2014

Tidak ada. Namun, karena Anda tetap mengimpor matematika, phi dapat dihitung dengan cara yang sama seperti pi dihitung:

>>> import math
>>> pi = 4 * math.atan(1)
>>> pi
3.141592653589793
>>> math.pi
3.141592653589793
>>> phi = ( 1 + math.sqrt(5) ) / 2
>>> phi
1.618033988749895

Alasan matematika mendefinisikan pi dan e tetapi tidak phi mungkin karena tidak ada yang memintanya.


Dokumen math python mengatakan math.pi adalah Konstanta matematika π = 3,141592..., untuk presisi yang tersedia. Namun, Anda dapat menghitung empat kali garis singgung busur satu dan mendapatkan hasil yang kurang lebih sama : pi=4*math.atan(1).

Hal yang sama dapat dikatakan tentang phi, yang tidak tersedia sebagai math.phi tetapi Anda dapat menemukan presisi terdekat yang tersedia dengan penyelesaian persamaan kuadrat x² + x -1 = 0: phi=(1+math.sqrt(5))/2.

person Iuri Guilherme    schedule 23.07.2019
comment
Kata-kata dari jawaban ini membuatnya terdengar seperti presisi terbatas dari math.pi adalah sebuah bug. Itu bukan bug. Python menggunakan fungsi ganda secara internal. Itu sebabnya dokumen mengatakan tersedia presisi. 4*math.atan(1) tidak akan memberikan perkiraan yang lebih baik, karena Anda masih menggunakan ganda di bawahnya. Ya, meskipun Anda memiliki superkomputer. :) Anda tidak memerlukan superkomputer untuk menghasilkan lebih dari 53 bit pi. - person ppm; 09.12.2019
comment
Menurutku konstanta terpotong yang awalnya saya rujuk adalah bukan hasil pemanggilan math.pi, melainkan digunakan dalam rumus refleksi untuk fungsi gamma. Akan memperbarui jawaban untuk mengakui kesalahan saya. - person Iuri Guilherme; 17.07.2020