最佳公式
给定数据:x y
1 1
2 32
3 61
4 92
5 122
6 153
7 183
8 214
9 245
10 275
11 306
12 336
要求找出最好的使得f(x)=y的公式,允许使用取整函数等等,越简单越好。
插值法会弄出11次来,线性拟合加取整似乎又办不到。
这个差值不就是闰年每个月的天数吗,参照星期几的计算公式 lsr314 发表于 2020-12-21 16:29
这个差值不就是闰年每个月的天数吗,参照星期几的计算公式
星期几的计算公式,貌似常见的都是把1、2月改到上一年年尾的,所以我考虑弄出一个新公式。 本帖最后由 uk702 于 2020-12-21 19:00 编辑
这个算不算? \(1+30(x-1)+- 的个位数\)
其实就是将残差拼与一个12位的小数。 uk702 发表于 2020-12-21 18:48
这个算不算? \(1+30(x-1)+- 的个位数\)
其实就是将残差拼与一个12位的小数。
真有你的,不过看了下3好像会弄出60来 本帖最后由 uk702 于 2020-12-21 19:45 编辑
manthanein 发表于 2020-12-21 19:15
真有你的,不过看了下3好像会弄出60来
我用 julia 确认过了。
a=
x=1; k=30; u=1; v=2
for i=1:12
b=x+k*(i-1)+round(Int, u*i/v) - round(Int, 10^i*1543865/731270181)%10;
println((i, b-a))
end
uk702 发表于 2020-12-21 19:21
我用 julia 确认过了。
a=
奇怪,我是用excel算的
=1+30*(A1-1)+INT(A1/2)-MOD(INT(10^A1*1543865/731270181),10) manthanein 发表于 2020-12-21 19:29
奇怪,我是用excel算的
=1+30*(A1-1)+INT(A1/2)-MOD(INT(10^A1*1543865/731270181),10)
不好意思,我搞错了,round() 默认返回的距离最近的整数,也就是相当于四啥五入之类的。 uk702 发表于 2020-12-21 19:47
不好意思,我搞错了,round() 默认返回的距离最近的整数,也就是相当于四啥五入之类的。
四舍五入就是int(公式+0.5),试了下1的对应值就不对。 manthanein 发表于 2020-12-21 19:51
四舍五入就是int(公式+0.5),试了下1的对应值就不对。
1+30(i-1)- % 10
a=
x=1; k=30; u=1; v=2
for i=1:12
b=x+k*(i-1)+floor(Int, u*i/v) - floor(Int, 10^i*274997/247497525)%10;
println((i, b-a))
end