工具:Jupyter notebook + Anaconda
游戏规则:时时彩一种玩法是买尾号。2元一个数字,中奖是20元。每个数字出现的概率相等。
目前想到两种买法:
- 随机购买,人是感性动物,很容易受周围环境干扰。完全随机购买在生活中是不存在的。
- 分析数字在前面N期出现的概率,选择概率最小的n个数字购买。
导入包
1
|
import numpy as np |
定义玩法一:完全随机购买
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
def play_lottery(my_money,play_num,money): ''' 随机选择数的中奖率 result:结果字典 num:用于统计每个数字出现次数 my_money:我的余额 play_num:投注期数 money:投注额 flag: 1代表赢钱 0则相反 2表示不输不赢 ''' flag = 1 temp = my_money result = { '0' : 0 , '1' : 1 , '2' : 2 , '3' : 3 , '4' : 4 , '5' : 5 , '6' : 6 , '7' : 7 , '8' : 8 , '9' : 9 } data = np.random.randint( 0 , 10 ,(play_num, 1 )) num = np.zeros(( 10 , 1 )) for i in data: play = np.random.randint( 0 , 10 ,( 5 , 1 )) if i in play: temp = temp + money else : temp = temp - money if result[ str (i[ 0 ])] = = i[ 0 ]: num[i[ 0 ]] = num[i[ 0 ]] + 1 print ( '我的余额:' ,temp) print ( '开奖结果统计:\n' ,num[ 0 ][ 0 ],num[ 1 ][ 0 ],num[ 2 ][ 0 ],num[ 3 ][ 0 ],num[ 4 ][ 0 ],num[ 5 ][ 0 ],num[ 6 ][ 0 ],num[ 7 ][ 0 ],num[ 8 ][ 0 ],num[ 9 ][ 0 ]) if temp < my_money: flag = 0 elif temp = = my_money: flag = 2 return flag |
赌博代码
1
2
3
4
5
|
i = 0 binary = np.zeros(( 3 , 1 )) while i < 10000 : binary[play_lottery( 1000 , 10 , 10 )][ 0 ] + = 1 i = i + 1 |
可以看出输:赢:平=6037:1886:2077
定义玩法二:按照概率购买
第一次购买,假设玩家已经获取到前面N期开奖号的中奖规律,不不不,应该是前面N期的各个数字出现的次数。
方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
def play_lottery2(my_money,play_num,money): ''' 随机选择数的中奖率 result:结果字典 num:用于统计每个数字出现次数 my_money:我的余额 play_num:投注期数 money:投注额 flag: 1代表赢钱 0则相反 2表示不输不赢 ''' flag = 1 temp = my_money result = { '0' : 0 , '1' : 1 , '2' : 2 , '3' : 3 , '4' : 4 , '5' : 5 , '6' : 6 , '7' : 7 , '8' : 8 , '9' : 9 } data = np.random.randint( 0 , 10 ,(play_num, 1 )) num = np.zeros(( 10 , 1 )) num_first = np.random.randint( 0 , 10 ,( 10 , 1 )) is_one = 1 for i in data: if is_one = = 1 : play = np.argsort(num_first,axis = 0 ).reshape( - 1 , 1 )[ 0 : 5 ] is_one = 0 play = np.argsort(num,axis = 0 ).reshape( - 1 , 1 )[ 0 : 5 ] if i in play: temp = temp + money else : temp = temp - money if result[ str (i[ 0 ])] = = i[ 0 ]: num[i[ 0 ]] = num[i[ 0 ]] + 1 print ( '我的余额:' ,temp) print ( '开奖结果统计:\n' ,num[ 0 ][ 0 ],num[ 1 ][ 0 ],num[ 2 ][ 0 ],num[ 3 ][ 0 ],num[ 4 ][ 0 ],num[ 5 ][ 0 ],num[ 6 ][ 0 ],num[ 7 ][ 0 ],num[ 8 ][ 0 ],num[ 9 ][ 0 ]) if temp < my_money: flag = 0 elif temp = = my_money: flag = 2 return flag |
赌博代码
1
2
3
4
5
|
i = 0 binary = np.zeros(( 3 , 1 )) while i < 10000 : binary[play_lottery2( 1000 , 10 , 10 )][ 0 ] + = 1 i = i + 1 |
可以看出按照概率购买之后比值为:
输:赢:平=3733:3761:2506
相对之前完全随机购买
输:赢:平=6037:1886:2077
赢得几率提升了不少,甚至赢>输,说的我都想翘课买彩票了。
好了回到正题。珍爱生命,远离黄赌毒。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.i-ll.cc/archives/408