|
|
为更加实际实用,规定k有确定的最大值.
为便于分析,对y轴特别规定朝下方为正,两点成的斜率这里规定为=(x2-x1)/(y2-y1).
k为自然数,k>-1,[lg(3^k)]+1为3^k的位数.
k=0,第一行数3^0=1的个位数1的方框右上角坐标记为([k*lg3],0),其中x坐标为3^k的位数减1,[k*lg3]简记为k'.x原坐标[lg(3^k)]+1中都有"+1",x坐标是x原坐标统一"-1",这不影响我们求出题目中的"斜率".
这样,我们得到坐标序列:
0,0 [记为0"]
1',1 [记为1"]
2',2 [记为2"]
3',3
...
k',k [记为k"]
k=1时答案直线h=1"0",斜率v=1'/1=0
如图1,M(m',m) M是k内点值 (=m'/m) 最大的点
如果m=k则答案直线是MO=f,v=m'/m
如果m<k则答案直线可能是g,这时要比较△AOM和△BCM面积大小,实际是要求比较它们方格数量,后者大于前者时答案为g,否则f
但是,g时却可能黄色区域中k内点N(n',n)出现在了g右边,做h//g,让h和f比较△面积大小
不过似乎MN比h更合理,这时T却出现在了MN右边,
点是否出现在了新直线右边,与新直线的位置和斜率与点位置相关
容易明白,点值越大越会'出轨',所以,
m<k时,(m,k]中,点值最大的点X与M成的直线XM才是应该和f比较△面积大小的直线
显然,如果m接近k,即m越大,m/k越接近1时,XM胜算越小.这样,若f胜出,答案直线就是f,斜率v= m'/m =k内点值最大的点M(m',m)的点值,这里只是假设,下面用程序粗略看看:
purebasic语言:
Structure tt
kk.l
k_.f
EndStructure
Dim tts.tt(28)
t.f=Log10(3)
Debug "题目结果应该在Log3附近下方波动,Log3≈"+StrF(t)
Debug "x/y=点值,(0,0)没有点值"
Debug "点值序列:k',k=点值,如下:"
For a=1 To 29
c=Int(a*t)
b.f=c/a
Debug Str(c)+","+Str(a)+"="+StrF(b)
tts(a-1)\kk = a
tts(a-1)\k_ = b
Next
SortStructuredArray(tts(), #PB_Sort_Ascending, OffsetOf(tt\k_), TypeOf(tt\k_))
Debug "点值排序[小到大]:k点=点值,如下:"
For a=0 To 28
Debug Str(tts(a)\kk)+" = "+StrF(tts(a)\k_)
Next
题目结果应该在Log3附近下方波动,Log3≈0.4771212637
x/y=点值,(0,0)没有点值
点值序列:k',k=点值,如下:
0,1=0
0,2=0
1,3=0.3333333433
1,4=0.25
2,5=0.400000006
2,6=0.3333333433
3,7=0.4285714328
3,8=0.375
4,9=0.4444444478
4,10=0.400000006
5,11=0.4545454681
5,12=0.4166666567
6,13=0.4615384638
6,14=0.4285714328
7,15=0.4666666687
7,16=0.4375
8,17=0.470588237
8,18=0.4444444478
9,19=0.4736842215
9,20=0.4499999881
10,21=0.4761904776
10,22=0.4545454681
10,23=0.4347825944
11,24=0.4583333433
11,25=0.4399999976
12,26=0.4615384638
12,27=0.4444444478
13,28=0.4642857015
13,29=0.4482758641
点值排序[小到大]:k点=点值,如下:
2 = 0
1 = 0
4 = 0.25
3 = 0.3333333433
6 = 0.3333333433
8 = 0.375
10 = 0.400000006
5 = 0.400000006
12 = 0.4166666567
14 = 0.4285714328
7 = 0.4285714328
23 = 0.4347825944
16 = 0.4375
25 = 0.4399999976
9 = 0.4444444478
18 = 0.4444444478
27 = 0.4444444478
29 = 0.4482758641
20 = 0.4499999881
22 = 0.4545454681
11 = 0.4545454681
24 = 0.4583333433
13 = 0.4615384638
26 = 0.4615384638
28 = 0.4642857015
15 = 0.4666666687
17 = 0.470588237
19 = 0.4736842215
21 = 0.4761904776
粗略分析数据,无论k取值范围多大,最大点值的点M好像总是比较接近最大值时的k,所以通常不需要分析上面提到的第二个最大点值的点.
比如,k取值范围[0,29],M=(10,21),28>21,(13,28)是'第二个最大点值的点',
如图2,这两点成的直线g的右边出现了一个点,它那k=30,不在讨论范围内
g明显落败于f
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|