尤拉計劃751:串聯重合
一個實數c通過以下過程,可以從任何正實值生成非遞減整數序列:
b[1]=c b[n]=floor(b[n-1])*(floor(b[n-1])-b[n] + 1),對n>=2
a[n]=floor(b[n])
例如,c=2.956938891377988...生成斐波那契序列:2, 3, 5, 8, 13, 21, 34, 55, 89, ...
正整數序列的串聯是一個實值,表示為將序列a中的元素,第一個放在小數點之前,從第二個位置開始其餘的串聯在小數點之後:
例如,根據c構造的斐波那契序列可以產生串聯值為2.3581321345589...。顯然,對於這個c值,c!=t。
求生成的序列開始於的唯一值c,並且生成的序列的串聯t等於原始值c。把你的答案四捨五入到小數點後24位。
用浮點數判斷, 精度達不到要求.
def find():
d=1
low=2
high=3
while low<high:
mid=(high+low)/2
d=t(mid)-mid
print(mid,d);
if d<0:
high=mid
else:
low=mid
if abs(d)<1e-25:break
def t(r):
b=[r]
a=[int(b[0])]
for i in range(0,16):
bi=a[i]*(b[i]-a[i]+1)
ai=int(bi)
b.append(bi)
a.append(ai)
return float('0.'+''.join([str(i) for i in a]))*10
>>>> find()
2.5 -0.16666666666666652
2.25 -0.016666666666666607
...
2.2235610193135544 -4.440892098500626e-16
2.223561019313554 0.0
>>>> t(2.223561019313554)
2.223561019313554
相關文章
- 尤拉計劃700:尤拉幣
- 尤拉計劃622:洗牌
- 尤拉計劃698:123數
- 尤拉計劃696:麻將
- 尤拉計劃719:拆分數
- 尤拉計劃699:三腳數
- 尤拉計劃706:三象數
- 尤拉計劃718:不可達數
- 尤拉計劃686:2的冪
- 尤拉計劃715:六元組
- 尤拉計劃709:偶數袋
- 尤拉計劃708:你只要2
- 尤拉計劃712:指數差
- 尤拉計劃749:近似冪和
- 尤拉計劃739:和的和
- 尤拉計劃745:平方和
- 尤拉計劃717:取模公式之和公式
- 尤拉計劃722:慢收斂系列
- 尤拉計劃695:隨機長方形隨機
- 尤拉計劃694:立方滿因數
- 尤拉計劃725:數位之和數
- 尤拉計劃710:1百萬會員
- 尤拉計劃723:畢達哥拉斯四邊形
- 尤拉計劃697:隨機衰減序列隨機
- 尤拉計劃713:圖蘭熱水系統
- 尤拉計劃711:二進位制黑板
- 尤拉計劃748:倒丟蕃多方程
- 尤拉計劃747:三角披薩
- 尤拉計劃657:不完整的單詞
- 尤拉計劃721:無理數高次冪
- 尤拉計劃701:隨機連線區域隨機
- 尤拉計劃714:兩種數位的數
- 尤拉計劃658:不完整的單詞(2)
- 尤拉計劃735:2n^2的因數
- 尤拉計劃705:除數序列的逆轉次數
- 尤拉計劃621:把整數表示為三角數之和
- 尤拉計劃704:二項式係數中的2因數
- 尤拉方程