角谷定理python输出变化过程,Python 100例——第十章----定理与猜想
# -*- coding: cp936 -*-
from math import sqrt
import random
#第十章----定理與猜想
#《c趣味編程》78-85題
#21:50 2006-11-4
def daoxu(n):
d=n
s=0
while d!=0:
d,f=divmod(d,10)
s=f+s*10
return s
def z85():
#任意取一個十進(jìn)制數(shù)如123,然后他和他的回文數(shù)321相加,得到新整數(shù)后重復(fù)以上步驟,最后
#可以得到一個回文數(shù)444
s1=179233126
s2=0
while s2!=s1:
s1=s1+s2
s2=daoxu(s1)
print s2
return
def z81():
'''角谷猜想是任何一個數(shù)如果是偶數(shù)就除以2如果是奇數(shù)就乘以3再加1,最后會導(dǎo)致1,4,2,循環(huán)'''
x=123347
while x!=1:
x= x%2==0 and x/2 or (x*3+1)/2
print x
def fangf(x):
t=int(sqrt(x))
if t*t==x: return [t]
t=int(sqrt(x-1))+1
m=range(t)
for i in m:
for j in m:
for k in range(j,t):
for p in range(k,t):
if i *i + j * j + k * k + p * p == x:
if i==0 and j==0:return[k,p]
if i==0 and j!=0:return[j,k,p]
return [i,j,k,p]
def z82():
#所有自然數(shù)最多可以用四個自然數(shù)的平方表示,驗(yàn)證這個定理
for i in range(2,100):
print i,fangf(i)
def z83():
# 任意一個四位數(shù),如1324,可以得到數(shù)1234和4321,然后4321-1234得到新數(shù),重復(fù)以上步驟,
#最后得到6174。而7641-1467=6174
def six(x):
t=1
e=list(str(x))
e.sort()
e=''.join(e)
n=int(e)
if n<1000:t=10
return daoxu(n)*t-n
i=1999
print i
while i!=6174:
i=six(i)
print i
def z84():
'''證明任何一個數(shù)a的立方等于一串連續(xù)奇數(shù)的和,其中首項(xiàng)為(a*(a-1)+1),公差為2,共a項(xiàng)
他們的和是((a*(a-1)+1)*a+(2*a-2)*a/2=(a^3-a^2+a)+(a^2-a)=a^3
'''
print "任何一個數(shù)a的立方等于一串連續(xù)奇數(shù)的和"
return
def z80():
'''很容易證明的定理大于1000的奇數(shù)x有x*x-1是8的倍數(shù)
[1,3,5,7]=[1,1,1,1]
'''
t=[i*i%8 for i in range(1,8,2)]
print t
print "大于1000的奇數(shù)x有x*x-1是8的倍數(shù)"
return
def z78():
#用正多邊形逼近的方法計算pi
x1=100000
b,i=0.5,6
while i
b=sqrt(2-2*sqrt(1-b*b))/2
i*=2
print b*i
def z79():
'''隨機(jī)法計算pi:
本程序并不使用計算pi值的算法,它只是一個概
率模擬,即在邊長為100的正方形內(nèi)隨機(jī)產(chǎn)生多
個點(diǎn),將點(diǎn)以圓弧為界分開統(tǒng)計,由于點(diǎn)的個數(shù)
很多,直至幾乎布滿整個區(qū)域。此時,點(diǎn)的個數(shù)
就可以看作就是它所在區(qū)域的面積。可以得到如
下推導(dǎo):
(1)藍(lán)色區(qū)內(nèi)點(diǎn)個數(shù):總個數(shù)≈藍(lán)色面積:總面積
(2)藍(lán)色區(qū)內(nèi)點(diǎn)個數(shù):總個數(shù)≈圓面積/4:總面積
(3)藍(lán)色區(qū)內(nèi)點(diǎn)個數(shù):總個數(shù)≈π×200×200/4:200×200
(4)π≈ 4×藍(lán)色區(qū)內(nèi)點(diǎn)個數(shù)/總個數(shù)
當(dāng)然,點(diǎn)的位置會重復(fù),所以結(jié)果與π值是
有差別的,不過,當(dāng)點(diǎn)足夠多時,可以看到一個
非常接近的結(jié)果。'''
x,y,z=0,100000,0
g=random.random
while x
a=g()
b=g()
if a*a+b*b<1:
z+=1
x+=1
print 4.0*z/y
if __name__ == '__main__':
s=""
for i in range(78,86):
s+='z'+str(i)+'()\n'
exec(s)
總結(jié)
以上是生活随笔為你收集整理的角谷定理python输出变化过程,Python 100例——第十章----定理与猜想的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界三叉戟用什么修复
- 下一篇: python装饰器传递参数_如何将额外的