摘要:

二進位是由十進位轉換而成,它的數字都由1、0組成的。我們研究發現由十進位轉換而成的二進位的數字可以不只局限在於1~127,它的數可以更加深加廣,並且可以利用二進位的規則轉換成遊戲。我們利用2n-1的規則,並用十進位轉二進位的方式,想出一個可以猜到別人心中所想的數的遊戲。過程中,我們發現利用這個規則不但可以計算出更大的數,也可以延伸出更多的遊戲。我們將重點放在二進位的擴展與三進位的研究,許多資料中提到的二進位轉換都只有到127而已,我們針對127以後的數進行研究,探討是否可以跟127以前的數一樣,同時也研究三進位的規則,並轉換成遊戲。對於二進位的擴展和三進位的研究,我們發現二進位以後的數和三進位也都可以研究出規則,和轉換成遊戲。

壹、研究動機:

有一次,老師拿了一組六張卡片的遊戲,叫我們在心中默想一個數,然後依次回答六張卡片中有沒有你心中所想的數,結果老師分別將我們心中的數猜出來,這時我們只覺得很神奇,但也因為這個小小的遊戲,使我們決定一起去研究它。

貳、研究目的:

一、研究是否能猜出比63更大的數。

二、研究比63更大的數至少需多少張卡片。

三、探討是否可利用其他路徑猜出答案。

四、研究其他進位法是否也有類似的規則。

參、研究過程或方法

一、玩家祕笈:

(一)、請玩家從1~63中選擇一個數字,不要告訴莊家。

(二)、莊家將下面(表一)的六張卡片拿給玩家看,請玩家檢查所選的數字出現在哪幾張卡片上,將這幾張卡片的編號告訴莊家。

(三)、莊家根據玩家所告知的編號,就可以猜出玩家所選擇的數字是哪一個。

例如:

玩家心理想的數是「19」,然後莊家給玩家看(表一),玩家告訴莊家他所選擇數字出現在編號「一」、「二」、「五」的卡片中。

然後莊家沉思了幾秒鐘就回答「19」

玩家驚呼:「哇!好厲害喔!」

莊家說:「這沒什麼啦!」

二、莊家祕笈:

二進位:1~63

1   3   5   7   9  11  13  15

17        19  21  23  25  27  29  31

33        35  37  39  41  43  45  47

49  51  53  55  57  59  61  63

2   3   6   7  10  11  14  15

18  19  22  23  26  27  30  31

34  35  38  39  42  43  46  47

50  51  54  55  58  59  62  63

4         5   6   7  12  13  14  15

20        21  22  23  28  29  30  31

36  37  38  39  44  45  46  47

52  53  54  55  60  61  62  63

8   9   10  11  12  13  14  15

24  25  26  27  28  29  30  31

40  41  42  43  44  45  46  47

56  57  58  59  60  61  62  63

16        17  18  19  20  21  22  23

24        25  26  27  28  29  30  31

48        49  50  51  52  53  54  55

56  57  58  59  60  61  62  63

32        33  34  35  36  37  38  39

40        41  42  43  44  45  46  47

48        49  50  51  52  53  54  55

56  57  58  59  60  61  62  63

(表一)

這個問題其實是利用二進位來設計的一個遊戲,第一張卡片所代表的是=1(十進位),這些數在二進位裡表示,第一位數都是1;第二張卡片所代表的是=2(十進位),這些數在二進位裡表示,第二位數都是1,以此類推第六張卡片所代表的是=32(十進位),這些數在二進位裡表示第六位數都是1。請參照(表二)。

十進位的數都可以用二進位來表示,例如:19在六位數的二進位表示為010011,所以19這個數字會出現在第一張、第二張和第五張卡片內,也就是說19=16+2+1。而52在6個位數的二進位表示為110100,所以52這個數字會出現在第三張、第五張和第六張卡片內,也就是說52=32+16+4。因此,1~63的數都可以用六位數的二進位來表示,所以不管玩家想哪一個數,都可以在六張卡片中找到這個數,這樣莊家就可以根據玩家所告知的卡片編號和二進位的法則,讓具有「讀心術」的莊家讀出玩家究竟選擇哪一個數字。

十進位數字

二進位表示

十進位數字

二進位表示

十進位數字

二進位表示

十進位數字

二進位表示

1

000001

17

010001

33

100001

49

110001

2

000010

18

010010

34

100010

50

110010

3

000011

19

010011

35

100011

51

110011

4

000100

20

010100

36

100100

52

110100

5

000101

21

010101

37

100101

53

110101

6

000110

22

010110

38

100110

54

110110

7

000111

23

010111

39

100111

55

110111

8

001000

24

011000

40

101000

56

111000

9

001001

25

011001

41

101001

57

111001

10

001010

26

011010

42

101010

58

111010

11

001011

27

011011

43

101011

59

111011

12

001100

28

011100

44

101100

60

111100

13

001101

29

011101

45

101101

61

111101

14

001110

30

011110

46

101110

62

111110

15

001111

31

011111

47

101111

63

111111

16

010000

32

100000

48

110000

64

1000000

(表二)

肆、研究結果與討論---三進位

一、玩家秘笈

(一)請玩家在1~26之中選個數字,不要跟莊家說。

(二)莊家將3張卡片中分成六格的格子拿給玩家看,請玩家檢查六格的格子中有沒有出現你想的數字在哪幾格卡片上,再告訴莊家有或沒有。

(三)莊家根據玩家所告知的編號,就可以猜出玩家所選擇的數字。

二、莊家秘笈

甲為莊家,乙為玩家。乙從(表三) 1~26隨便想一個數字,例如「21」,然後甲給乙看3張卡片中的6個格子,乙告訴甲他所選擇的數字出現在二A和三B的卡片中。甲沉思了一會兒就回答說:「21。」

三進位:1~26

A

B

1  4  7  10  13

16  19  22  25

2  5  8  11  14

17  20  23  26

3  4  5  12  13

14  21  22  23

6  7  8  15  16

17  24  25  26

9  10  11  12  13  14  15  16  17

18  19  20  21  22

23  24  25  26

(表三)

十進位數字

三進位表示

十進位數字

三進位表示

1

001

14

112

2

002

15

120

3

010

16

121

4

011

17

122

5

012

18

200

6

020

19

201

7

021

20

202

8

022

21

210

9

100

22

211

10

101

23

212

11

102

24

220

12

110

25

221

13

111

26

222

(表四)

其實,這個問題是運用三進位來設計的一個遊戲,用有、沒有來回答;若有的話,可能是 A所代表的1,也可能是B所代表的2;沒有則是零。         仔細觀察(表三)和(表四)的三張卡片,我們可以得知以下的結論: 第一張卡片的A格子,它所代表的是三進位表示法,尾數是1的數;B格子所代表的是三進位表示法,尾數全是2的數。若以上都沒有的話則是0;第二張卡片的A格子則是三進位表示法,後面數來的第二位為1的數,第二張卡片的B格子則是從三進位表示法後面數來的第二位為2的數,以此類推...。

我們可以知道十進位的數都可以用三進位來表示 (視數字之大小需用不同的位數),Ex:21可以用三進位來表示為「210」,所以21這個數字會出現在二-A、三-B中,也就是說21=3+18。而15這個數可以用三進位的三位數來表示為「120」,所以15這個數它會出現在二-B、三-A的格子中,也就是說6+9=15。因此,1~26的數都可以用三位數的三進位來表示,所以不管玩家想哪一個數,都可以在三張卡片六個格子中找到這個數,這樣具有「讀心術」的莊家就可以根據玩家所告知的卡片編號和二進位法則,讀出玩家究竟是哪一個數字。但為什麼只能猜1~26呢?因為三進位的三位數能表示的最大數就是26(十進位)【這個數字是這樣算出來的-1=26】。

三、延伸之法

(一)混濁之數

仔細觀察格子中的數,我們可以發現一-A~三-B中的數字都是井然有序的,要是比較細心的玩家可能就會發現你的把戲,但如果我們將格子的數字全打亂了,一定會使玩家困惑,讓玩家更佩服具有讀心術的莊家。我們發現其實三進位的遊戲除了猜心術這個兩人以上的遊戲之外,可以發展成一個人在玩的『迷宮遊戲』,(如圖一)。原理和猜心術相同。

(二)分身之術

(表四)中,我們只做到十進位中的26而已,但我們還可以設計出更大範圍的數字;如: 1~80(3-1=80)…等。只要握住一個原則【3-1】就可以了!

A

B

9.10.11.12.13

.14.15.16.17

18.19.20.21.22

.23.24.25.26

0           A             B

A

B

3.4.5.12.13

.14.21.22.23.

6.7.8.15.16

.17.24.25.26.

A

B

3.4.5.12.13

.14.21.22.23.

6.7.8.15.16

.17.24.25.26.

A

B

3.4.5.12.13

.14.21.22.23.

6.7.8.15.16

.17.24.25.26.

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

`17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

4

B

1.4.7.10.13.

16.19.22.25

2.5.8.11.14.

17..20.23.26

0  1  2     3  4  5     6  7  8     9 10  11    12 13  14   15 16  17   18 19  20  21  22 13   24 25 26

(圖一)

伍、結論

一、根據以上的討論,我們發現除了可猜出最初1~63之間的數之外。我們還可以將數字擴大到1~255,甚至可猜出更大的數,當然越大的數,在計算上會比較複雜一點。

二、研究中,發現二進位卡片的張數跟2的次方有很大的關係,當數字為1~63時,最大的數為26-1=63也就是說,至少需六張卡片。依此類推當數字為1~127時,最大的數為27-1=127,至少需七張卡片。三進位卡片的張數則跟3的次方有關係,當數字為1~26時最大的數為33-1=26,代表至少需3張卡片6個表格,才能猜出答案來。

三、研究過程中,我們發現遊戲人數除了原來的莊家與玩家兩人之外,還可以發展成一個人玩的『迷宮遊戲』模式。根據上面探討的原理,只要利用簡單的樹狀圖結構就可以設計出來。

四、除了二進位的研究之外,我們還將觸角延伸到三進位的遊戲上,發現三進位也可以利用類似的規則,得到我們想要猜出的數字。當然其他進位法也可以仿照這樣的作法,只不過會變得越來越複雜,那就失去探討的意義了。

陸、參考資料

一、李毓佩(民90)。數學的傳奇與遊戲(138~140)。國際村文庫書店有限公司。

二、張秋林(民91)。數學魔幻謎題(87~89)。林鬱文化事業有限公司。

三、勝野元薰(民91)。電影數學魔術入門(65~72)。國際村文庫書店有限公司。

四、李國賢(民92)。趣味數學‧遊戲篇(273~280)。新潮社文化事業有限公司。

根据二进制和十进制转换规则转换成游戏[xyytit]的更多相关文章

  1. 十进制浮点数转换成IEEE754标准的32浮点数的二进制格式

    参考: http://jimmygod.blog.163.com/blog/static/43511339200792605627411/ http://blog.csdn.net/archersab ...

  2. JavaScript 将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数

    将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数 1 <!DOCTYPE html> 2 <html> 3 <head> 4 < ...

  3. erlang中通过ip和子网掩码,计算地址范围 【二进制和十进制的转换】

    在程序中,难免用的二进制和十进制之间的转换.遇到一个场景,通过ip和子网掩码,计算地址范围. 而地址范围为:网络地址+1—— 广播地址 -1 .  网络地址即ip和子网掩码的与的位运算.广播地址为:网 ...

  4. Excel 中将大于511的十进制数转换成二进制

    If number < -512 or if number > 511, DEC2BIN returns the #NUM! error value. 所以不能直接使用DEC2BIN函数. ...

  5. IOS中将十进制色值转换成UIColor

    最近因项目需要,在网上找了一些代码,整合了一下,实现的效果就是将10进制的RGB色值转换IOS用的UIColor,方法还有缺陷,有待改进 UIColor *getColorFromString(NSS ...

  6. ip(点分十进制 <==> 二进制整数)之间的转换

    linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_nt ...

  7. C#图片转换成二进制流并且保存到sql server数据库

    注意:我要存储文件二进制流的列的类型是text,不是image类型. 我已经实现了从数据库中读取text类型的二进制流,,现在就是不知道怎么存进去. 我的部分关键代码: StreamReader sr ...

  8. 基于Visual C++2013拆解世界五百强面试题--题4-double转换成字符串

    请用C语言实现将double类型数据转换成字符串,再转换成double类型的数据.int类型的数据 想要完成题目中的功能,首先我们的先对系统存储double的格式有所了解. 浮点数编码转换使用的是IE ...

  9. Python二进制转十进制算法、十进转二进制算法

    二进制数转换成十进制数:二进制数从右向左每位数乘以2的次方(从0开始,从右向左依次+1),然后相加求和即可 如:0101转成十进制为:1*20+0*21+1*22+0*23 =1+0+4+0=5 算法 ...

随机推荐

  1. 术语-服务:SaaS

    ylbtech-术语-服务:SaaS SaaS是Software-as-a-Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式. ...

  2. [转]关于vs2005、vs2008和vs2010项目互转的总结

    关于vs2005.vs2008和vs2010项目互转的总结 分类: Asp.Net2010-11-16 16:59 18239人阅读 评论(12) 收藏 举报 2010.net框架编译器 有做.net ...

  3. [UE4]GetWorld()->GetDeltaSeconds()方法

    void AAvatar::Yaw(float amount) { if (Controller && amount) { // AddControllerYawInput()函数用于 ...

  4. iOS 一些琐碎的知识点

    1. Xcode左边导航栏中,类文件后面的标记"A""M""?"符号的含义 M = Locally modified 文件已被修改 U = ...

  5. HTML|CSS之CSS选择器及样式

    知识内容: 1.CSS选择器 2.CSS常用样式 参考:http://www.cnblogs.com/yuanchenqi/articles/5977825.html 一.CSS选择器 1.基础选择器 ...

  6. vue pm2守护进程

    Linux 创建一个.sh可执行脚本,例如hexo.sh 代码 12 #!/usr/bin/env bashhexo server 使用pm2 start hexo.sh执行脚本 Windows 创建 ...

  7. 怎样把代码复制到word中并保持颜色

  8. python 网页爬虫,下载网络图片

    # coding=utf-8 import lxml,bs4,re,requests csvContent='' file = open('D:\\tyc_demo.html','rb') soup ...

  9. 可视化库-seaborn-调色板(第五天)

    1. 基础的调色板的演示  color_palette() 设置传入的任何颜色,不传使用默认颜色,set_palette() 设置所有图的颜色# 6种主题 # 1 deep# 2 muted# 3 p ...

  10. Spring声明式事务不回滚问题

    疑问,确实像往常一样在service上添加了注解 @Transactional,为什么查询数据库时还是发现有数据不一致的情况,想想肯定是事务没起作用,出现异常的时候数据没有回滚.于是就对相关代码进行了 ...