--- tags: Python系統設計 --- # 大數運算_除法V3版.py 20240513隨筆: 1.大概邏輯出來了,但最近有點懶,還沒寫成程式。 2.目前推算,不確定速度會比V1版快,但是還是想找時間寫出來比較看看。 3.大概邏輯如下:a/b=c...d=>(【a1】_【a2】_【a3】)/ (【b1】_【b2】_【b3】) =>c=((【a1】_【a2】_【a3】)/【b1】)-(【b2】 *(10^1) /【b1】* (10^2) )-(【b3* (10^0)】/【b1】* (10^2))=>d=((【a1】%【b1】)_【a2】_【a3】)-(【b2】)_(【b3】)。_是串連的意思,(【b2】 *(10^1) /【b1】* (10^2) )也可以這樣寫(【b2】 /【b1】 )/ (10^ (2-1) ) =>假如 ( [a1]_ [a2]_ [a3] )/ ( [b1]_ [b2] ) =>c= (( [a1]_ [a2]_ [a3] )/ [b1])- ( [b2]/ [b1] ] )*(10^(1-0)) =>d=((( [a1]_ [a2] )%b1)_ [a3] )- ([b2]*(10^0)) 為甚麼只%到 [a2] 因為 [a2]、 [b1] 的進位都是10^1,所以除到相同的位置就好。=>假如a=1234=([12]_[34]) 4.精準度方面也有疑慮,要實際寫出程式才知道結果。例如: 商: 321/321=1=>([3]_[2]_[1])/([3]_[2]_[1]) => 321/300=1.07 300/300=1 20/300=0.0666666667~0.067 1/300=0.0033333333~0.003 (3/3)*(10^(2-2))=1 (2/3)*(10^(1-2))=0.06666666~0.067 (2/3)*(10^(0-2))=0.03333333~0.003 餘: 321%300=21 21-20=1 1-1=0 ((3*(10^2))+(2*(10^1))+(1*(10^0)))%(3*(10^2))=21 21-(2*(10^1))=1 1-(1*(10^0))=0 ```python= ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up