最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

pyuthon計(jì)算圓周率(無聊寫的,寫的玩玩)

2023-05-17 23:35 作者:星海三垣二十八宿  | 我要投稿

環(huán)境如下

編譯器:PyCharm

python解釋器:COnda

工具環(huán)境:Conda

python版本:3.10

事情是這樣的本來準(zhǔn)備寫計(jì)算圓周率的python代碼玩玩,然后發(fā)現(xiàn)輸出的結(jié)果不對(duì)

代碼如下

from decimal import Decimal, getcontext
import signal
def signal_handler(signum, frame):
? ?print('You pressed Ctrl+C!')
? ?exit(0)
def compute_pi():

? ?# 設(shè)置上下文精度
? ?getcontext().prec = 1000
? ?# 初始化參數(shù)
? ?a = Decimal(1.0)
? ?b = Decimal(1.0) / Decimal(2).sqrt()
? ?t = Decimal(1.0) / Decimal(4.0)
? ?p = Decimal(1.0)
? ?# 安裝信號(hào)處理函數(shù)
? ?signal.signal(signal.SIGINT, signal_handler)
? ?# 循環(huán)計(jì)算
? ?for i in range(10000000000000):
? ? ? ?a_next = (a + b) / Decimal(2.0)
? ? ? ?b_next = (a * b).sqrt()
? ? ? ?t_next = t - p*(a - a_next)**2
? ? ? ?pi_next = (a_next + b_next)**2 / (Decimal(4.0) * t_next)

? ? ? ?# 將每一位的計(jì)算結(jié)果輸出
? ? ? ?for digit in str(pi_next):
? ? ? ? ? ?if digit != '.':
? ? ? ? ? ? ? ?print(digit, end='')
? ? ? ?a = a_next
? ? ? ?b = b_next
? ? ? ?t = t_next
? ? ? ?p = pi_next
? ?print("\nFinished computing pi!")

# 執(zhí)行圓周率計(jì)算
compute_pi()

輸出結(jié)果
3140579250522168248311331268975823311773440237512948335643486693345582758034902907827287621552766900546005422146813923926603..............

正確輸出結(jié)果應(yīng)該:3. 1415926535 8979323846 2643383279 5028841971 6939937510
5820974944 5923078164 0628620899 8628034825 3421170679

唯一作用就是:滿屏幕在動(dòng)的隨機(jī)數(shù)字

感覺挺好玩的,因?yàn)橛?jì)算計(jì)算速度比較快,不會(huì)太有人,會(huì)核對(duì)結(jié)果是否正確,裝逼應(yīng)該還是可以的

注意:本程序可以跑,但是輸出結(jié)果不正確

以下是正確的計(jì)算圓周率的python代碼

import math
def compute_pi():
? ?return math.pi
pi = compute_pi()
print(pi)

輸出結(jié)果:3.141592653589793

如果你感覺位數(shù)不夠的用以下代碼

import decimal
def pi_to_n_decimal_places(n):
? ?decimal.getcontext().prec = n + 1
? ?pi = decimal.Decimal(0)
? ?k = 0
? ?while True:
? ? ? ?term = 1 / decimal.Decimal(16)**k * (
? ? ? ? ? ? ? ? ? decimal.Decimal(4)/(8*k+1) -
? ? ? ? ? ? ? ? ? decimal.Decimal(2)/(8*k+4) -
? ? ? ? ? ? ? ? ? decimal.Decimal(1)/(8*k+5) -
? ? ? ? ? ? ? ? ? decimal.Decimal(1)/(8*k+6))
? ? ? ?if abs(term) < decimal.Decimal("1e-{}".format(n)):
? ? ? ? ? ?break
? ? ? ?pi += term
? ? ? ?k += 1
? ?return pi
pi = pi_to_n_decimal_places(100)

//pi = pi_to_n_decimal_places(這改成你想讓電腦計(jì)算多少位數(shù))

print(pi)

輸出結(jié)果:3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170678

注意:數(shù)太大,電腦會(huì)卡死

運(yùn)行環(huán)境已經(jīng)提供,想玩的可以配置相同的環(huán)境,玩玩,加粗的代碼

pyuthon計(jì)算圓周率(無聊寫的,寫的玩玩)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
长丰县| 静乐县| 卓尼县| 乌鲁木齐市| 安溪县| 寻乌县| 南澳县| 定兴县| 塘沽区| 嘉黎县| 当阳市| 盐亭县| 琼结县| 银川市| 麦盖提县| 司法| 长宁县| 长乐市| 正安县| 黔西县| 册亨县| 贡嘎县| 都匀市| 唐山市| 阳朔县| 呼伦贝尔市| 凤冈县| 乐至县| 桦甸市| 登封市| 含山县| 盐源县| 陆河县| 五台县| 万盛区| 灵山县| 宁远县| 福清市| 防城港市| 京山县| 通化县|