- 已编辑
1
1
@"笨人魁首"
以下是一个简单的python代码,希望大神检查下随机生成有没有错误?
import time
import random
import collections
class LotteryBettingSystem:
def __ init __(self,total_funda,max_bets): self.total_funds = total_funds self.current_funds = total_funds self.max_bets = max_bets self.stage_win=collections.defaultdict(int) self.stage_losses=collections.defaultdict(i nt)
self bets = {
1:[1,2,4,],
2:[2,4,8],
3:[4,8,16],
…………
}
self.current_stage= 1 self.stage_history=collections.defaultdict(int)
self.win = 0
self.s losses = 0 self.bets_history=collections.defaultdict(int) self.streak_balance = 0
self.fundshistory=[self.current_funds] self.stage_funds = 0
seed = int(time.time() * 1000000) random.seed(seed)
def get_bet_amount(self):
return self.bets[self.current_stage][self.bets_history[self.current_stage] % len(self.bets[self.current_stage])]
def play_lottery(self):
return random.random() < 0.4932
def place_bet(self):
bet_amount = self.get_bet_amount()
if self.play_lottery():
self.wins += 1
self.streak_balance += bet_amount self.stage_history[self.current_stage] += 1 self.stage_wins[self.current_stage] += 1 self.current_funds += bet_amount self.bets_history[self.current_stage] = 0
if self.streak_balance >= 0: self.current_stage = 1
self.streak_balance = 0
else:
self.losses += 1
self.streak_balance -= bet_amount self.bets_history[self.current_stage] += 1 self.stage_history[self.current_stage] += 1
if self.streak_balance < 0 and self.bets_history[self.current_stage] == len(self.bets[self.current_stage]): self.stage_losses[self.current_stage] += 7 self.bets_history[self.current_stage] = 0 self.current_stage += 1
if self.current_stage > max(self.bets.keys()): self.current_stage = 1
def run(self):
bet_count = 0
while self.current_funds > 0 and bet_count < self max_bets:
self.place_bet()
bet_count += 1
print(f"总赢次数: {self.wins}")
print(f"总输次数: {self.losses}")
print(f"当前资金: {self.current_funds}")
for stage in sorted(self.bets_history.keys()): print(f"当前层 {stage} : 投注{self.stage_history[stage]} 次,赢 {self.stage_wins[stage]次,输 {self.stage_losses[stage]}次")
system = LotteryBettingSystem(total_funds =100000000,max_bets = 100000) system.run()
望大神指点下随机生成是不是这样形式,每次运行10万次,一般到15层以上都只断揽1到两次3次这样子,到每测十几二十次就会出现15层以上每层断揽几十次,而且第一层输赢次数在大数上也不对,不知为什么这样子?不知在哪私信,只好在这里回复
你这个代码实现了一个简单的模拟投注系统,用于模拟一个假设的博彩策略,并统计模拟过程中各个投注层级的胜负情况和资金变化。具体用途包括:
投注策略模拟:模拟某种特定的投注策略,观察在该策略下,资金的变化情况。
胜负统计:统计每个投注层级的胜负次数,以便分析该策略的有效性。
风险管理:通过模拟,可以了解不同层级的风险,帮助改进投注策略。
修正和优化包括:
你编写的代码有一些格式和逻辑上的问题,修正了缩进和格式问题,使代码更易读。
确保了所有变量名的一致性(如self.wins而不是self.win)。
在投注结构中需要补全更多的层级。
修正了可能引发错误的逻辑部分。
另外,送你一个程序:
Python 的 secrets 模块设计用于生成更安全、更随机的数值,适合于安全性要求较高的场景,如生成密码或安全令牌。相比于 random 模块,secrets 提供的随机性更好,不易被预测。
重写该程序,使用 secrets 模块来替换 random 模块,以提高随机性的质量。
你可以加我好友或者提供电邮,也可以发邮件,wealthfirst888@gmail.com,私密把3个文件代码传给你。包括random 模块程序,secrets 模块程序,利用secrets 模块投注庄,闲,或者和程序。
输出结果1:random 模块
总赢次数:49185
总输次数:50815
当前资金:100198774
当前层 1 : 投注 33176 次,赢 16227 次,输 2500 次
当前层 2 : 投注 33026 次,赢 16213 次,输 2497 次
当前层 3 : 投注 33798 次,赢 16745 次,输 2493 次
输出结果2:secrets 模块
总赢次数:49029
总输次数:50971
当前资金:100199209
当前层 1 : 投注 33276 次,赢 16380 次,输 2473 次
当前层 2 : 投注 33028 次,赢 16100 次,输 2472 次
当前层 3 : 投注 33696 次,赢 16549 次,输 2471 次
传递后,看看是不是你想要的结果,假设不是,请继续说明要求,可以再改代码。
再多送一个程序给你,使用 Python secrets 随机模块来模拟投注策略,用于研究和模拟,而不是用于实际投注。
输出结果用于参考:
第 1 次投注: 选择 banker, 结果 player, 当前资金 999
第 2 次投注: 选择 banker, 结果 banker, 当前资金 1000
第 3 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 4 次投注: 选择 banker, 结果 player, 当前资金 1000
第 5 次投注: 选择 player, 结果 player, 当前资金 1001
第 6 次投注: 选择 banker, 结果 player, 当前资金 1000
第 7 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 8 次投注: 选择 banker, 结果 banker, 当前资金 1002
第 9 次投注: 选择 player, 结果 banker, 当前资金 1001
第 10 次投注: 选择 player, 结果 banker, 当前资金 1000
第 11 次投注: 选择 player, 结果 tie, 当前资金 999
第 12 次投注: 选择 player, 结果 player, 当前资金 1000
第 13 次投注: 选择 banker, 结果 player, 当前资金 999
第 14 次投注: 选择 banker, 结果 banker, 当前资金 1000
第 15 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 16 次投注: 选择 banker, 结果 tie, 当前资金 1000
第 17 次投注: 选择 player, 结果 banker, 当前资金 999
第 18 次投注: 选择 banker, 结果 player, 当前资金 998
第 19 次投注: 选择 banker, 结果 banker, 当前资金 999
第 20 次投注: 选择 banker, 结果 banker, 当前资金 1000
第 21 次投注: 选择 player, 结果 player, 当前资金 1001
第 22 次投注: 选择 banker, 结果 tie, 当前资金 1000
第 23 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 24 次投注: 选择 banker, 结果 banker, 当前资金 1002
第 25 次投注: 选择 banker, 结果 player, 当前资金 1001
第 26 次投注: 选择 banker, 结果 player, 当前资金 1000
第 27 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 28 次投注: 选择 banker, 结果 player, 当前资金 1000
第 29 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 30 次投注: 选择 banker, 结果 player, 当前资金 1000
第 31 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 32 次投注: 选择 player, 结果 banker, 当前资金 1000
第 33 次投注: 选择 player, 结果 player, 当前资金 1001
第 34 次投注: 选择 player, 结果 player, 当前资金 1002
第 35 次投注: 选择 banker, 结果 banker, 当前资金 1003
第 36 次投注: 选择 player, 结果 banker, 当前资金 1002
第 37 次投注: 选择 banker, 结果 player, 当前资金 1001
第 38 次投注: 选择 player, 结果 tie, 当前资金 1000
第 39 次投注: 选择 banker, 结果 player, 当前资金 999
第 40 次投注: 选择 banker, 结果 player, 当前资金 998
第 41 次投注: 选择 player, 结果 player, 当前资金 999
第 42 次投注: 选择 banker, 结果 player, 当前资金 998
第 43 次投注: 选择 player, 结果 player, 当前资金 999
第 44 次投注: 选择 player, 结果 player, 当前资金 1000
第 45 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 46 次投注: 选择 player, 结果 player, 当前资金 1002
第 47 次投注: 选择 banker, 结果 banker, 当前资金 1003
第 48 次投注: 选择 player, 结果 banker, 当前资金 1002
第 49 次投注: 选择 player, 结果 banker, 当前资金 1001
第 50 次投注: 选择 banker, 结果 player, 当前资金 1000
第 51 次投注: 选择 player, 结果 player, 当前资金 1001
第 52 次投注: 选择 banker, 结果 player, 当前资金 1000
第 53 次投注: 选择 banker, 结果 banker, 当前资金 1001
第 54 次投注: 选择 player, 结果 banker, 当前资金 1000
第 55 次投注: 选择 player, 结果 banker, 当前资金 999
第 56 次投注: 选择 player, 结果 player, 当前资金 1000
第 57 次投注: 选择 player, 结果 player, 当前资金 1001
第 58 次投注: 选择 banker, 结果 banker, 当前资金 1002
第 59 次投注: 选择 player, 结果 banker, 当前资金 1001
第 60 次投注: 选择 banker, 结果 tie, 当前资金 1000
第 61 次投注: 选择 banker, 结果 player, 当前资金 999
第 62 次投注: 选择 player, 结果 banker, 当前资金 998
第 63 次投注: 选择 banker, 结果 player, 当前资金 997
第 64 次投注: 选择 player, 结果 player, 当前资金 998
第 65 次投注: 选择 banker, 结果 player, 当前资金 997
第 66 次投注: 选择 player, 结果 player, 当前资金 998
第 67 次投注: 选择 player, 结果 player, 当前资金 999
第 68 次投注: 选择 player, 结果 tie, 当前资金 998
第 69 次投注: 选择 banker, 结果 player, 当前资金 997
第 70 次投注: 选择 player, 结果 banker, 当前资金 996
第 71 次投注: 选择 player, 结果 player, 当前资金 997
第 72 次投注: 选择 player, 结果 banker, 当前资金 996
第 73 次投注: 选择 banker, 结果 player, 当前资金 995
第 74 次投注: 选择 banker, 结果 banker, 当前资金 996
第 75 次投注: 选择 banker, 结果 tie, 当前资金 995
第 76 次投注: 选择 banker, 结果 banker, 当前资金 996
第 77 次投注: 选择 banker, 结果 banker, 当前资金 997
第 78 次投注: 选择 banker, 结果 player, 当前资金 996
第 79 次投注: 选择 player, 结果 banker, 当前资金 995
第 80 次投注: 选择 player, 结果 banker, 当前资金 994
第 81 次投注: 选择 player, 结果 player, 当前资金 995
第 82 次投注: 选择 player, 结果 player, 当前资金 996
第 83 次投注: 选择 player, 结果 player, 当前资金 997
第 84 次投注: 选择 banker, 结果 player, 当前资金 996
第 85 次投注: 选择 banker, 结果 banker, 当前资金 997
第 86 次投注: 选择 player, 结果 banker, 当前资金 996
第 87 次投注: 选择 player, 结果 tie, 当前资金 995
第 88 次投注: 选择 banker, 结果 player, 当前资金 994
第 89 次投注: 选择 banker, 结果 tie, 当前资金 993
第 90 次投注: 选择 banker, 结果 player, 当前资金 992
第 91 次投注: 选择 player, 结果 banker, 当前资金 991
第 92 次投注: 选择 banker, 结果 banker, 当前资金 992
第 93 次投注: 选择 banker, 结果 tie, 当前资金 991
第 94 次投注: 选择 player, 结果 player, 当前资金 992
第 95 次投注: 选择 player, 结果 banker, 当前资金 991
第 96 次投注: 选择 banker, 结果 banker, 当前资金 992
第 97 次投注: 选择 player, 结果 player, 当前资金 993
第 98 次投注: 选择 banker, 结果 player, 当前资金 992
第 99 次投注: 选择 player, 结果 player, 当前资金 993
第 100 次投注: 选择 player, 结果 player, 当前资金 994
总资金: 994
庄家胜利次数: 42
闲家胜利次数: 48
和局次数: 10
这样就有了一个把你的程序用于模拟投注庄,闲,或者和的更实际的方法了,仅供参考。