- 注册时间
- 2009-5-22
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 38516
- 在线时间
- 小时
|
楼主 |
发表于 2019-1-23 07:14:59
|
显示全部楼层
上天给了Fans一次猜$x$的机会,
但是Fans没有珍惜,直到剧情编不下去了,才后悔不已。
如果上天再给Fans一次机会,
那么Fans会毫不犹豫地把憋了很久的心里话大声地说出来:$x=2/5=0.4$!!!
上天让Fans为自己说的话负责到底,
Fans说:不行啊,我先负责$1$万年再说吧~
#####
玩笑开到这,已经够了。我们推倒重来吧。
- #include<cmath>
- #include<cstdio>
- //K29打65只怪2^34次,求得存活概率如下:
- double a[66]={
- 1.0000000000000000,//打0只怪活下来的概率
- 0.5000000000000000,//打1只怪活下来的概率
- 0.3513662144559050,//打2只怪活下来的概率
- 0.2815932136360760,//打3只怪活下来的概率
- 0.2411939870610670,//打4只怪活下来的概率
- 0.2147788174076160,//打5只怪活下来的概率
- 0.1960844954887230,//打6只怪活下来的概率
- 0.1821000514218010,//打7只怪活下来的概率
- 0.1712025004164640,//打8只怪活下来的概率
- 0.1624406088519320,//打9只怪活下来的概率
- 0.1552199392076540,//... ...
- 0.1491497625889210,//依次类推
- 0.1439625207812350,
- 0.1394686720757390,
- 0.1355300925893690,
- 0.1320436452922420,
- 0.1289307025903360,
- 0.1261302243508660,
- 0.1235940617072260,
- 0.1212836967574740,
- 0.1191679256057280,
- 0.1172211841158430,
- 0.1154223169766410,
- 0.1137536521266190,
- 0.1122003071339890,
- 0.1107496512486020,
- 0.1093908885908010,
- 0.1081147336432270,
- 0.1069131496347130,
- 0.1057791462666320,
- 0.1047066098055320,
- 0.1036901669383610,
- 0.1027250761863060,
- 0.1018071345305470,
- 0.1009326024326260,
- 0.1000981399239770,
- 0.0993007552925089,
- 0.0985377579887405,
- 0.0978067226882315,
- 0.0971054555833467,
- 0.0964319675118892,
- 0.0957844501656179,
- 0.0951612551987818,
- 0.0945608768872055,
- 0.0939819361677082,
- 0.0934231677708489,
- 0.0928834082812828,
- 0.0923615863941826,
- 0.0918567135572522,
- 0.0913678756458316,
- 0.0908942256862503,
- 0.0904349785084306,
- 0.0899894045116523,
- 0.0895568245676279,
- 0.0891366064208952,
- 0.0887281593404700,
- 0.0883309318481240,
- 0.0879444083041124,
- 0.0875681055585488,
- 0.0872015702317939,
- 0.0868443768406531,
- 0.0864961255573120,
- 0.0861564401382168,
- 0.0858249661582232,
- 0.0855013695008716,
- 0.0851853349845766//打65只怪活下来的概率
- },b[66];
- int main()
- {
- //根据前65只怪的存活概率,用如下方法拟合数据:
- for(int i=0;i<66;i++)
- printf("%lf\n",exp(2/a[i]/5));
- return 0;
- }
- /*
- 拟合结果如下:
- 1.491825
- 2.225541
- 3.121811
- 4.139143
- 5.250987
- 6.439050
- 7.690124
- 8.994333
- 10.344081
- 11.733388
- 13.157455
- 14.612366
- 16.094876
- 17.602265
- 19.132225
- 20.682779
- 22.252220
- 23.839063
- 25.442002
- 27.059889
- 28.691700
- 30.336527
- 31.993550
- 33.662034
- 35.341313
- 37.030782
- 38.729891
- 40.438134
- 42.155053
- 43.880221
- 45.613247
- 47.353769
- 49.101450
- 50.855980
- 52.617070
- 54.384449
- 56.157865
- 57.937082
- 59.721879
- 61.512046
- 63.307390
- 65.107723
- 66.912874
- 68.722676
- 70.536975
- 72.355625
- 74.178488
- 76.005430
- 77.836325
- 79.671053
- 81.509501
- 83.351561
- 85.197129
- 87.046108
- 88.898401
- 90.753920
- 92.612581
- 94.474299
- 96.338995
- 98.206594
- 100.077024
- 101.950214
- 103.826097
- 105.704610
- 107.585689
- 109.469275
- --------------------------------
- Process exited after 0.6761 seconds with return value 0
- 请按任意键继续. . .
- */
复制代码
需要注意的是,上述代码从第$79$行开始,做了一些改动(具体什么改动?其实就是开头那段玩笑,把$5/13$改成$2/5$了~)。
现在我要为自己说的话负责到底:
上述代码表明,$e^{2/{5a(i)}}$“像”一个等差数列。
怎么像呢?那就准确地说:$e^{2/{5a(i)}}$是一个等差数列与一个无穷小量的和。
我们首先差分一下,得到等差数列的公差与一个无穷小量的和:
- 0.733716
- 0.896270
- 1.017332
- 1.111844
- 1.188063
- 1.251074
- 1.304208
- 1.349749
- 1.389307
- 1.424067
- 1.454911
- 1.482510
- 1.507389
- 1.529959
- 1.550554
- 1.569442
- 1.586842
- 1.602940
- 1.617886
- 1.631812
- 1.644827
- 1.657023
- 1.668484
- 1.679279
- 1.689469
- 1.699108
- 1.708243
- 1.716919
- 1.725168
- 1.733025
- 1.740522
- 1.747682
- 1.754530
- 1.761089
- 1.767379
- 1.773416
- 1.779217
- 1.784796
- 1.790168
- 1.795343
- 1.800334
- 1.805150
- 1.809802
- 1.814299
- 1.818650
- 1.822862
- 1.826942
- 1.830895
- 1.834728
- 1.838449
- 1.842060
- 1.845568
- 1.848978
- 1.852293
- 1.855520
- 1.858661
- 1.861718
- 1.864696
- 1.867599
- 1.870430
- 1.873190
- 1.875883
- 1.878513
- 1.881080
- 1.883586
复制代码
再差分一次,就没有公差了,就只剩下一个无穷小量了,结果如下:
- 0.162554
- 0.121061
- 0.094513
- 0.076219
- 0.063011
- 0.053135
- 0.045540
- 0.039558
- 0.034760
- 0.030844
- 0.027598
- 0.024880
- 0.022570
- 0.020595
- 0.018888
- 0.017401
- 0.016097
- 0.014947
- 0.013926
- 0.013015
- 0.012196
- 0.011461
- 0.010795
- 0.010190
- 0.009639
- 0.009135
- 0.008675
- 0.008249
- 0.007857
- 0.007496
- 0.007160
- 0.006849
- 0.006559
- 0.006290
- 0.006036
- 0.005801
- 0.005579
- 0.005371
- 0.005176
- 0.004991
- 0.004817
- 0.004652
- 0.004497
- 0.004351
- 0.004212
- 0.004080
- 0.003953
- 0.003833
- 0.003721
- 0.003611
- 0.003508
- 0.003410
- 0.003315
- 0.003227
- 0.003141
- 0.003057
- 0.002978
- 0.002903
- 0.002831
- 0.002761
- 0.002693
- 0.002629
- 0.002567
- 0.002506
复制代码
经过仔细观察,Fans认为:这个无穷小量很可能是某个$3$次函数的倒数,
所以接下来把这个数列倒一下,变成一个$3$次的函数,结果如下:
- 6.1518
- 8.2603
- 10.5806
- 13.1202
- 15.8703
- 18.8201
- 21.9587
- 25.2791
- 28.7686
- 32.4210
- 36.2340
- 40.1933
- 44.3065
- 48.5563
- 52.9448
- 57.4688
- 62.1223
- 66.9052
- 71.8103
- 76.8361
- 81.9914
- 87.2492
- 92.6360
- 98.1379
- 103.7414
- 109.4678
- 115.2677
- 121.2200
- 127.2734
- 133.4011
- 139.6673
- 146.0128
- 152.4617
- 158.9797
- 165.6602
- 172.3730
- 179.2416
- 186.1699
- 193.2148
- 200.3794
- 207.6184
- 214.9729
- 222.3598
- 229.8469
- 237.3982
- 245.1207
- 252.9752
- 260.8870
- 268.7790
- 276.8974
- 285.0685
- 293.2282
- 301.6832
- 309.8970
- 318.3804
- 327.0922
- 335.8168
- 344.4576
- 353.2829
- 362.2523
- 371.2816
- 380.3596
- 389.5607
- 398.9827
复制代码
上次的剧情就编到这,Fans就编不下去了。
这次Fans把$x$的值改过来了,所以剧情可以继续了~
因为是$3$次函数,所以接下来做个开立方运算,
开了立方之后,这个函数就变成$1$次函数了,结果如下:
- 1.832317
- 2.021458
- 2.195348
- 2.358558
- 2.513013
- 2.659953
- 2.800285
- 2.934859
- 3.064122
- 3.188665
- 3.309065
- 3.425453
- 3.538527
- 3.648228
- 3.754981
- 3.859023
- 3.960492
- 4.059632
- 4.156510
- 4.251300
- 4.344330
- 4.435275
- 4.524736
- 4.612598
- 4.698768
- 4.783680
- 4.866715
- 4.949083
- 5.030130
- 5.109595
- 5.188378
- 5.265791
- 5.342201
- 5.417271
- 5.492112
- 5.565315
- 5.638275
- 5.710005
- 5.781140
- 5.851731
- 5.921367
- 5.990474
- 6.058318
- 6.125566
- 6.191927
- 6.258352
- 6.324497
- 6.389754
- 6.453546
- 6.517879
- 6.581371
- 6.643576
- 6.706826
- 6.767150
- 6.828345
- 6.890066
- 6.950789
- 7.009901
- 7.069264
- 7.128591
- 7.187334
- 7.245440
- 7.303399
- 7.361811
复制代码
因为是$1$次函数,所以可以把这个函数看成一个等差数列与一个无穷小量的和。
于是接下来差分一下,看看这个等差数列的公差到底是多少:
- 0.189141
- 0.173890
- 0.163209
- 0.154455
- 0.146940
- 0.140332
- 0.134575
- 0.129263
- 0.124542
- 0.120400
- 0.116389
- 0.113073
- 0.109701
- 0.106753
- 0.104042
- 0.101469
- 0.099140
- 0.096878
- 0.094790
- 0.093030
- 0.090945
- 0.089461
- 0.087862
- 0.086171
- 0.084911
- 0.083035
- 0.082368
- 0.081047
- 0.079465
- 0.078783
- 0.077413
- 0.076410
- 0.075070
- 0.074841
- 0.073203
- 0.072960
- 0.071730
- 0.071135
- 0.070591
- 0.069636
- 0.069108
- 0.067844
- 0.067248
- 0.066361
- 0.066425
- 0.066145
- 0.065257
- 0.063792
- 0.064333
- 0.063493
- 0.062204
- 0.063250
- 0.060323
- 0.061195
- 0.061721
- 0.060723
- 0.059112
- 0.059363
- 0.059327
- 0.058742
- 0.058107
- 0.057959
- 0.058412
复制代码
这样就很清楚了,这个等差数列的公差介于$0.05$到$0.06$之间。
如果再差分一次,那么这个等差数列就连公差都抵消掉了,就只剩下一个无穷小量了。
所以我们再来差分一下,看看这个无穷小量到底是个什么东西:
- -0.01525097
- -0.01068094
- -0.00875411
- -0.00751544
- -0.00660746
- -0.00575766
- -0.00531161
- -0.00472049
- -0.00414279
- -0.00401098
- -0.00331540
- -0.00337213
- -0.00294795
- -0.00271077
- -0.00257343
- -0.00232920
- -0.00226204
- -0.00208770
- -0.00176001
- -0.00208529
- -0.00148385
- -0.00159924
- -0.00169120
- -0.00125916
- -0.00187625
- -0.00066710
- -0.00132092
- -0.00158207
- -0.00068221
- -0.00136978
- -0.00100261
- -0.00134044
- -0.00022892
- -0.00163824
- -0.00024305
- -0.00122928
- -0.00059582
- -0.00054408
- -0.00095459
- -0.00052825
- -0.00126385
- -0.00059620
- -0.00088675
- 0.00006387
- -0.00027943
- -0.00088850
- -0.00146457
- 0.00054019
- -0.00084002
- -0.00128805
- 0.00104600
- -0.00292698
- 0.00087170
- 0.00052620
- -0.00099837
- -0.00161092
- 0.00025092
- -0.00003598
- -0.00058464
- -0.00063570
- -0.00014767
- 0.00045267
复制代码
这个无穷小量看起来是一个$2$次函数的倒数,
可惜这个函数倒不回来,因为函数值有正有负的,硬倒回来就倒坏了。
我接下来要好好地护着这个函数,不能把它玩坏了……
……怎样才能不被玩坏,又能获得它的近似表达式呢?
——我想到了作图。
那就先把图作出来,看看是啥东西再说:
图作出来了,确实是个无穷小量,因为它的极限确实是趋于$0$的,
只是这个函数“抖”得太厉害了。
——为什么会“抖”得这么厉害呢?
因为这是随机取样$2^34$次的计算结果呀~ 有抽样误差在呀~
抽样误差本来是很小很小的,
但是经过一系列变换之后,这个误差越来越大了~
最后大到导致整个【看起来像$2$次函数的倒数】的函数都倒不回去了,无法继续做变换了~
那接下来该怎么办呢?
像这种抖得这么利害的函数,我能想到的唯一办法就是上工具。
有一个叫做【Curve Expert】的神奇工具,你给他一堆散点,他就可以给你一个函数。
(不管你给他的点再散再乱,他都可以给你整个函数出来~)
于是我就把这些【看起来像$2$次函数的倒数的散点】的相反数给他了。
不出所料,他给了我一个函数,说【这个函数是所有函数中拟合得最好的一个函数】:
我看了一下,这个函数确实是【$2$次函数的倒数】。
有了这个函数,我就可以预测$i>65$的函数值,然后反推回去,得到$i>65$时的$a(i)$的值。
#####
接下来,见证奇迹的时刻到了。
我们把反推回去的$a(i)$的值与之前所列的值比较一下,看看是否一致:
$(1)$、$a(2^10)\approx 0.05234$:反推回去的$a(2^10)=0.052336710482$,一致!
$(2)$、$a(2^20)\approx 0.02771$:反推回去的$a(2^20)=0.027378206249$,糟糕,不一致……
$(3)$、$a(2^31)\approx 0.01888$:反推回去的$a(2^31)=0.017989797245$,糟糕,这个也不一致……
拟合还是不成功,还得重来…… |
|