博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QBasic 计算还需要净胜/负多少局才能胜率增/减1%
阅读量:6694 次
发布时间:2019-06-25

本文共 2365 字,大约阅读时间需要 7 分钟。

hot3.png

2014年的12月29日,写了个VBS脚本,计算还需要连胜多少把才能让自己的胜率提升1%:

这个脚本的地址在:

结果后来连着输了几把,胜率掉了1%(汗)。正好昨天看了下QBasic,就用QBasic写段代码计算一下吧

我的编码环境为:编译器为Win32下的FreeBasic(版本1.00.0),IDE为FBIde(版本0.4.6r4)

这段代码计算了还需要连胜多少把才能把自己的胜率提升1%,也计算了还需要连败多少把就会让胜率降低1%

计算规则:

1)以当前玩了426局,获胜86局为例,当前的胜率是0.201878,截去小数后是20%。

2)在这个基础上,连胜4局后,玩了430局,获胜90局,胜率为0.209302,截去小数后还是20%;但在连胜5局后,玩了431局,获胜91局,胜率到达0.211137,截去小数后胜率到达21%!这个时候,就认为是连胜5局后,就可以让胜率增加1个百分点。

3)同理,计算负场时,连负4局后,玩了430局,获胜86局,胜率为0.2,即20%;连负5局后,玩了431局,获胜86局,胜率为0.199536,截去小数后,是19%,视为胜率下降一个百分点。

需要注意的几点是:

1)胜率100%的时候,再连胜多少局胜率都是100%

2)胜率99%的时候,再连胜多少局胜率都是99%

3)胜率0%的时候,再连负多少局胜率都是0%

程序代码如下:

REM 计算还需要连胜多少局才能让胜率涨一点REM 计算还需要连败多少局才能让胜率降一点DIM GAMEPLAYED AS INTEGER DIM GAMEWON AS INTEGER  DIM INPUT1 AS STRING : INPUT "HOW MANY GAMES HAVE YOU PLAYED? "; INPUT1DIM INPUT2 AS STRING : INPUT "HOW MANY GAMES HAVE YOU WON? "; INPUT2PRINTGAMEPLAYED = FIX(VAL(INPUT1))GAMEWON = FIX(VAL(INPUT2))PRINT "GAMEPLAYED: "; GAMEPLAYEDPRINT "GAMEWON: "; GAMEWONPRINT'输入合法性校验IF GAMEPLAYED < 0 OR GAMEWON < 0 OR GAMEPLAYED < GAMEWON THEN    PRINT "GAMEPLAYED MUST BIGGER-EQUAL THAN 0"    PRINT "GAMEWON MUST BIGGER-EQUAL THAN 0"    PRINT "GAMEPLAYED MUST BIGGER THAN GAMEWON"    GOTO PRG_FINISH END IF'计算当前胜率PRINT "CURRENT WINNING RATE: "; GAMEWON * 100 \ GAMEPLAYED; "%"'计数器DIM COUNTER AS INTEGER'计算还需要多少局连胜才能增长一点胜率'检查特例IF GAMEPLAYED = GAMEWON THEN    PRINT "NO NEED TO IMPROVE!"    GOTO MISSION1_COMPLETEELSEIF GAMEWON * 100 \ GAMEPLAYED = 99 THEN    PRINT "NO SOLUTION TO IMPROVE!"    GOTO MISSION1_COMPLETEEND IF'模拟玩一局赢一局的过程COUNTER = 1DO     IF (GAMEWON + COUNTER - 1) * 100 \ (GAMEPLAYED + COUNTER - 1) < _        (GAMEWON + COUNTER) *  100 \ (GAMEPLAYED + COUNTER) THEN        EXIT DO    ELSE        COUNTER = COUNTER + 1    END IFLOOP'打印结论1PRINT "TO IMPROVE 1% WINNING RATE, YOU NEED TO WIN"; COUNTER; " GAME(S) CONTINUOUSLY"MISSION1_COMPLETE:'计算还需要多少局连败才能降低一点胜率'检查特例IF GAMEWON = 0 THEN    PRINT "WINNING PERCENTAGE: 0%"    PRINT "CANNOT DECLINE ANY MORE!"    GOTO MISSION2_COMPLETEEND IF'模拟玩一局输一局的过程COUNTER = 1DO     IF (GAMEWON) * 100 \ (GAMEPLAYED + COUNTER - 1) > _        (GAMEWON) *  100 \ (GAMEPLAYED + COUNTER) THEN        EXIT DO    ELSE        COUNTER = COUNTER + 1    END IFLOOP'打印结论2PRINT "TO DECLINE 1% WINNING RATE, YOU NEED TO LOSE"; COUNTER; " GAME(S) CONTINUOUSLY"MISSION2_COMPLETE:PRG_FINISH:SLEEPEND

运行结果截图:

130741_XiHO_1425762.png

END

转载于:https://my.oschina.net/Tsybius2014/blog/363453

你可能感兴趣的文章
我的友情链接
查看>>
页面内容显示不全问题的解决办法
查看>>
交换机的原理及VTP
查看>>
我的友情链接
查看>>
【JSP】JSP与Servlet的区别
查看>>
Lapm+xcache安装wordpress
查看>>
Nginx 负载均衡-加权轮询策略剖析
查看>>
mysql 全量备份和增量备份
查看>>
我的友情链接
查看>>
你必须知道的ADO.NET(三) 连接字符串,你小觑了吗?
查看>>
VUE页面渲染问题
查看>>
我的友情链接
查看>>
路由器故障可以通过Ping命令来排除
查看>>
jvm方法调用
查看>>
RPMBUILD
查看>>
个人常用Markdow语法代码备用
查看>>
假以时日,win7将替代XP系统
查看>>
iphone软件开发让更多人获得成功
查看>>
nginx log每小时轮循
查看>>
刷题-5
查看>>