鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: Fring

[已解决]关于连续最先最多硬币次数的逻辑思考问题

[复制链接]
发表于 2020-12-9 13:33:34 | 显示全部楼层
本帖最后由 逃兵 于 2020-12-9 13:42 编辑
Fring 发表于 2020-12-9 13:18
好的,好开心。真心感谢,能再给我解释其中last变量假设的使用方法和思维。


不着急的话我就一点一点说了,我说的模糊的地方你可以指出来,慢慢弄明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-9 13:45:35 | 显示全部楼层
逃兵 发表于 2020-12-9 13:33
不着急的话我就一点一点说了,我说的模糊的地方你可以指出来,慢慢弄明白

好的,太谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-9 14:09:12 | 显示全部楼层
last记录上一次的状态,如果是正面设置为1, 反面则设置为2

因为你在第一次掷硬币的时候,没有上一次。所以初始时,last=0

掷第一次硬币,如果是正面(函数第25行,if num % 2 :)在最下面会重新给last赋值last=1(函数第41行,last = 1)

如果是反面(函数第42行,else:),在最下面会重新给last赋值last=2(函数第58行,last = 2)

这个last在下次循环就有了新值(1或者2)就能用来判断条件函数(函数第33行,if last == 2:)(函数第50行,if last == 1:)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-9 14:24:09 | 显示全部楼层
逃兵 发表于 2020-12-9 14:09
last记录上一次的状态,如果是正面设置为1, 反面则设置为2

因为你在第一次掷硬币的时候,没有上一次。所 ...

也就是说:
1、实际上 last = 1 和  last = 2 实际上是其互相循环并赋值的作用的。
①因为只要正面次数开始重新计算的时候,因为上一次是反面,所以就在运行符合正面条件的语句里面,其中的if last == 2 实际上就是和else 语句里面的last = 2 相互对应了,最终导致的结果就是正面的连续次数就开始中断了,于是又要开始从1次正面开始重新统计连续正面次数。
②同理,如果,上一次是正面,那么在符合反面条件的语句里面,其中的 if last == 1 实际上就和 if num % 2:条件语句里面的last = 1 相互对应了,最最终也就是导致反面的连续次数就开始中断了,于是又要开始从1次反面开始重新统计连续反面次数。
2、我的理解有问题没啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-9 14:26:48 | 显示全部楼层
Fring 发表于 2020-12-9 14:24
也就是说:
1、实际上 last = 1 和  last = 2 实际上是其互相循环并赋值的作用的。
①因为只要正面次数 ...

正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-9 14:35:12 | 显示全部楼层
关于判断连续出现最多次数的逻辑

因为每次在正面之后出现反面,连续正面就会复位归零
反之,在每次出现反面之后出现症面,连续反面就会复位归零

之后判断最大的连续次数
max_heads和max_tails也是被循环赋值的
判断连续正面的次数是否比max_heads大,如果是,取而代之。如果否,max_heads不变
判断连续反面的次数是否比max_tails大,如果是,取而代之。如果否,max_tails不变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-9 15:07:28 | 显示全部楼层
逃兵 发表于 2020-12-9 14:35
关于判断连续出现最多次数的逻辑

因为每次在正面之后出现反面,连续正面就会复位归零

嗯嗯嗯,明白了,谢谢啊。学这个语言,如果真的没有得到及时反馈的话,如果只看教材,我估计根本就掌握不了许多常识性的东西。编程真的好难!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-9 15:33:59 | 显示全部楼层
逃兵 发表于 2020-12-9 14:35
关于判断连续出现最多次数的逻辑

因为每次在正面之后出现反面,连续正面就会复位归零

嗯嗯,明白了THANK YOU!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 21:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表