关于位数的规律(没有推导,观察出的,不知道对不对)

P1045 [NOIP2003 普及组] 麦森数

RagnaLP @ 2017-08-04 23:02:17

排开个位数

好像是按照3-3-4的规律进位

然后就似乎不正确的简单了

4 : 16 5 : 32 6 : 64 //3个进位

7 : 128

8 : 256

9 : 512

//3个进位

10 : 1024

11 : 2048

12 : 4096

13 : 8192

//4个进位

14 : 16384

15 : 32768

16 : 65536

//3个进位

17 : 131072

18 : 262144

19 : 524288

//3个进位

20 : 1048576

21 : 2097152

22 : 4194304

23 : 8388608

//4个进位

24 : 16777216

25 : 33554432

26 : 67108864

//3个进位

27 : 134217728

28 : 268435456

29 : 536870912

//3个进位

30 : 1073741824

31 : 2147483648

32 : 4294967296

33 : 8589934592

//4个进位

34 : 17179869184

35 : 34359738368

36 : 68719476736

//3个进位

37 : 137438953472

38 : 274877906944

39 : 549755813888

//3个进位

40 : 1099511627776

41 : 2199023255552

42 : 4398046511104

43 : 8796093022208

//4个进位

44 : 17592186044416

45 : 35184372088832

46 : 70368744177664

//3个进位

47 : 140737488355328

48 : 281474976710656

49 : 562949953421312

//3个进位

50 : 1125899906842624

51 : 2251799813685248

52 : 4503599627370496

53 : 9007199254740992

//4个进位

54 : 18014398509481984

55 : 36028797018963968

56 : 72057594037927936

//3个进位

57 : 144115188075855872

58 : 288230376151711744

59 : 576460752303423488

//3个进位

60 : 1152921504606846976

61 : 2305843009213693952

62 : 4611686018427387904

63: 9223372036854775808

//4个进位

·····

虽然有公式,但好像有些道理的样子


by Niscet @ 2017-08-04 23:05:21

%%%%


by X_o_r @ 2017-08-05 11:07:11

我认为3,4进位频率应该是有个比值的,这个比值是方程(3x+4y)/(x+y)=log2(10)的解,解出来以后x:y=(4-log2(10)):(log2(10)-3)大约就是2.10628372:1就这么几个数据当然接近2:1也就是334,其实个位就是一个特例


by X_o_r @ 2017-08-05 11:18:48

因为2的若干次幂-1不影响位数,所以这题的位数就是trunc(log10(2)*p)+1


by Hanabi_BNUAZ @ 2017-09-05 21:02:04

呵呵,不对啊,你看数据吧,数据是1297,答案是386,按照3-3-4的规律的话以十为一循环,每次的位数增加3,最终先把前面的2的1,2,3次方减掉,还剩余1276,除以10再乘以三的答案是381,再加上前面减掉的1,2,3的位置,加上一位,就是382,最后拿1276和10取模,答案是6,依照3-3-4的条件,最后是3,答案再加上2,最终得到的答案是382+2=384,与题目中的386的答案不匹配啊。如果认为这种计算方法是错的,你拿29来试一下,2的29次方的位数是9位,(int)(29-3)的结果是2,2*3=6,最后加上一和余数所对应的商6,最终答案是6+1+2,答案是九。所以这种方法貌似有点坑啊


by 愤鸟先飞 @ 2017-10-31 17:23:09

TLE喷雾


|