2的正幂末尾数的模式

2的正幂末尾数的模式

2的正幂 — 2, 4, 8, 16, 32, 64, 128, 256, … — 末尾数字遵循一个显而易见的规律: 2, 4, 8, 6, 2, 4, 8, 6, … . 这4个数字永远循环下去。最末尾数以外还有循环 — 实际上是最末m位 — 从2m 开始的2的幂。例如,从04开始最末两位数就存在一个长度20的循环,同时从008开始最末3位数就存在一个长度100的循环。

本文,我将告诉你为什么会有这些循环,它们有多长,如何表达为数学形式,如何看见它们。

最末尾数的循环

末位数-所在位置-是十进制整数d在d/10后的余数。等价地,末位数是d mod 10的结果,根据约定取最小非负值-普通余数-作为返回结果。模运算,持续叠加到2的幂运算,得到末位数的循环:

我们从2开始,取10的模,再乘以2,再对10取模,等等。可知此模式将循环,直到先前的一个结果-2再次出现在第五步-循环确认。这展现了数字 2n, n ≥ 1, 末位数在四个数字 2, 4, 8, 和 6间循环。

这循环告诉我们,末尾数相同的2的幂是有关联的,它们的指数相差4:

Ends in 2: 21, 25, 29, 213, 217, … .

Ends in 4: 22, 26, 210, 214, 218, … .

Ends in 8: 23, 27, 211, 215, 219, … .

Ends in 6: 24, 28, 212, 216, 220, … .

你可以使用指数运算规则来更简洁地描述,展示所有2的幂中末位数有规律的前4个:

Ends in 2: 21·24k, or 21+4k, k ≥ 0.

Ends in 4: 22·24k, or 22+4k, k ≥ 0.

Ends in 8: 23·24k, or 23+4k, k ≥ 0.

Ends in 6: 24·24k, or 24+4k, k ≥ 0.

也可以按照指数对4取模的结果来对2的幂建立联系:

Ends in 2:

Ends in 4:

Ends in 8:

Ends in 6:

这就很容易知道任意2的正幂的末位数是几。例如, 2319 的末位数是 8, 因为 .

Cycle in the Last Digit of 2n, n≥1

Power of Two (k ≥ 0)Exponent (mod 4)Last Digit

21+4k

1

2

22+4k

2

4

23+4k

3

8

24+4k

0

6

小结,表格告诉我们,如果 , .

末两位数的循环

类似的分析,只是对100取模,展示2的幂的末两位数,从 22 开始,循环周期是20:

Cycle in the Last Two Digits of 2n, n≥2

Power of Two (k ≥ 0)Exponent (mod 20)Last 2 Digits

22+20k

2

04

23+20k

3

08

24+20k

4

16

25+20k

5

32

26+20k

6

64

27+20k

7

28

28+20k

8

56

29+20k

9

12

210+20k

10

24

211+20k

11

48

212+20k

12

96

213+20k

13

92

214+20k

14

84

215+20k

15

68

216+20k

16

36

217+20k

17

72

218+20k

18

44

219+20k

19

88

220+20k

0

76

221+20k

1

52

末三位的循环

为了找出末三位数的循环,重复上面的过程,对1000取模。下面展示了2的幂的末三位,从 23开始,循环周期是100:

Cycle in the Last Three Digits of 2n, n≥3

Power of Two (k ≥ 0)Exponent (mod 100)Last 3 Digits

23+100k

3

008

24+100k

4

016

25+100k

5

032

26+100k

6

064

27+100k

7

128

28+100k

8

256

29+100k

9

512

210+100k

10

024

211+100k

11

048

212+100k

12

096

213+100k

13

192

214+100k

14

384

215+100k

15

768

216+100k

16

536

217+100k

17

072

218+100k

18

144

219+100k

19

288

220+100k

20

576

221+100k

21

152

222+100k

22

304

223+100k

23

608

224+100k

24

216

225+100k

25

432

226+100k

26

864

227+100k

27

728

228+100k

28

456

229+100k

29

912

230+100k

30

824

231+100k

31

648

232+100k

32

296

233+100k

33

592

234+100k

34

184

235+100k

35

368

236+100k

36

736

237+100k

37

472

238+100k

38

944

239+100k

39

888

240+100k

40

776

241+100k

41

552

242+100k

42

104

243+100k

43

208

244+100k

44

416

245+100k

45

832

246+100k

46

664

247+100k

47

328

248+100k

48

656

249+100k

49

312

250+100k

50

624

251+100k

51

248

252+100k

52

496

253+100k

53

992

254+100k

54

984

255+100k

55

968

256+100k

56

936

257+100k

57

872

258+100k

58

744

259+100k

59

488

260+100k

60

976

261+100k

61

952

262+100k

62

904

263+100k

63

808

264+100k

64

616

265+100k

65

232

266+100k

66

464

267+100k

67

928

268+100k

68

856

269+100k

69

712

270+100k

70

424

271+100k

71

848

272+100k

72

696

273+100k

73

392

274+100k

74

784

275+100k

75

568

276+100k

76

136

277+100k

77

272

278+100k

78

544

279+100k

79

088

280+100k

80

176

281+100k

81

352

282+100k

82

704

283+100k

83

408

284+100k

84

816

285+100k

85

632

286+100k

86

264

287+100k

87

528

288+100k

88

056

289+100k

89

112

290+100k

90

224

291+100k

91

448

292+100k

92

896

293+100k

93

792

294+100k

94

584

295+100k

95

168

296+100k

96

336

297+100k

97

672

298+100k

98

344

299+100k

99

688

2100+100k

0

376

2101+100k

1

752

2102+100k

2

504

末m位数循环

2的正幂的末m位数循环要对10m取模,循环周期是 4·5m-1, 始于 2m. (具体证明涉及到数论,超出了本文的范围)

Cycle Length for Number of Ending Digits (1 to 10)

mPeriod (4·5m-1)Starts with

1

4

21

2

20

22

3

100

23

4

500

24

5

2500

25

6

12500

26

7

62500

27

8

312500

28

9

1562500

29

10

7812500

210

周期增长飞快-指数级增长-所以无法列出m大于3的列表。

循环的嵌套(Nesting of Cycles)

对于末m位,m-1位,m-2位, …, 末1位的循环,可以看做是嵌套的,尽管它们的起始点是交错的。你只需将较小的起始数补零,就能让它们对齐。

例如,在长度是100的末三位循环中,包含了5次长度是20的末两位循环;每一个长度是20的末两位循环包含5次长度为4的最末位循环。你从8(需移动两位)开始观察就能发现最末位的规律,末两位的规律始于08(需移动一位),末三位的规律始于008(不需移位)。

下表标出了嵌套的循环(全部100行都被标记,因为只有100个2的幂-末三位的一个循环-被列出)。

Nested 1-3 Digit Ending Patterns From 23 to 2102

使用PARI/GP探索末位循环

我使用PARI/GP 来进行上面的计算和验证。下面是三个例子:

列出前20个末位是2的2的幂:

? for (i=0,19,print("2^",1+4*i,": ",2^(1+4*i)))

2^1: 2

2^5: 32

2^9: 512

2^13: 8192

2^17: 131072

2^21: 2097152

2^25: 33554432

2^29: 536870912

2^33: 8589934592

2^37: 137438953472

2^41: 2199023255552

2^45: 35184372088832

2^49: 562949953421312

2^53: 9007199254740992

2^57: 144115188075855872

2^61: 2305843009213693952

2^65: 36893488147419103232

2^69: 590295810358705651712

2^73: 9444732965739290427392

2^77: 151115727451828646838272

列出末两位的循环( ‘%’ 号返回余数,等价于取模运算):

? for (i=2,21,print("2^",i," mod(100): ",2^i % 100))

2^2 mod(100): 4

2^3 mod(100): 8

2^4 mod(100): 16

2^5 mod(100): 32

2^6 mod(100): 64

2^7 mod(100): 28

2^8 mod(100): 56

2^9 mod(100): 12

2^10 mod(100): 24

2^11 mod(100): 48

2^12 mod(100): 96

2^13 mod(100): 92

2^14 mod(100): 84

2^15 mod(100): 68

2^16 mod(100): 36

2^17 mod(100): 72

2^18 mod(100): 44

2^19 mod(100): 88

2^20 mod(100): 76

2^21 mod(100): 52

(单位的数字这里没有前补零)

打印末位1到10位数的周期长度:

? for (i=1,10,print(i,": ",4*5^(i-1)))

1: 4

2: 20

3: 100

4: 500

5: 2500

6: 12500

7: 62500

8: 312500

9: 1562500

10: 7812500

← 上一篇: 如何下载《龙狼传》?
下一篇: 台积电在2025年为何仍能为小米玄戒O1芯片代工且不受美国出口管制? →

相关推荐