QBasic 计算还需要净胜/负多少局才能胜率增/减1%

2023-10-15 13:20

本文主要是介绍QBasic 计算还需要净胜/负多少局才能胜率增/减1%,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这个脚本的地址在:http://my.oschina.net/Tsybius2014/blog/362078

结果后来连着输了几把,胜率掉了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? "; INPUT1
DIM INPUT2 AS STRING : INPUT "HOW MANY GAMES HAVE YOU WON? "; INPUT2PRINTGAMEPLAYED = FIX(VAL(INPUT1))
GAMEWON = FIX(VAL(INPUT2))PRINT "GAMEPLAYED: "; GAMEPLAYED
PRINT "GAMEWON: "; GAMEWONPRINT'输入合法性校验
IF GAMEPLAYED < 0 OR GAMEWON < 0 OR GAMEPLAYED < GAMEWON THENPRINT "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 THENPRINT "NO NEED TO IMPROVE!"GOTO MISSION1_COMPLETE
ELSEIF GAMEWON * 100 \ GAMEPLAYED = 99 THENPRINT "NO SOLUTION TO IMPROVE!"GOTO MISSION1_COMPLETE
END IF'模拟玩一局赢一局的过程
COUNTER = 1
DO IF (GAMEWON + COUNTER - 1) * 100 \ (GAMEPLAYED + COUNTER - 1) < _(GAMEWON + COUNTER) *  100 \ (GAMEPLAYED + COUNTER) THENEXIT DOELSECOUNTER = COUNTER + 1END IF
LOOP'打印结论1
PRINT "TO IMPROVE 1% WINNING RATE, YOU NEED TO WIN"; COUNTER; " GAME(S) CONTINUOUSLY"MISSION1_COMPLETE:'计算还需要多少局连败才能降低一点胜率'检查特例
IF GAMEWON = 0 THENPRINT "WINNING PERCENTAGE: 0%"PRINT "CANNOT DECLINE ANY MORE!"GOTO MISSION2_COMPLETE
END IF'模拟玩一局输一局的过程
COUNTER = 1
DO IF (GAMEWON) * 100 \ (GAMEPLAYED + COUNTER - 1) > _(GAMEWON) *  100 \ (GAMEPLAYED + COUNTER) THENEXIT DOELSECOUNTER = COUNTER + 1END IF
LOOP'打印结论2
PRINT "TO DECLINE 1% WINNING RATE, YOU NEED TO LOSE"; COUNTER; " GAME(S) CONTINUOUSLY"MISSION2_COMPLETE:PRG_FINISH:
SLEEP
END

运行结果截图:

130741_XiHO_1425762.png

END

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

这篇关于QBasic 计算还需要净胜/负多少局才能胜率增/减1%的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217986

相关文章

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显