回 帖 发 新 帖 刷新版面

主题:请教各位高手一个简单的逻辑问题,谢谢

我准备改造一个抽奖的程序,遇到一些逻辑算法的问题想请教一下各位。

程序是这样的
TOTAL为该等级的获奖总人数
EVERYTIME为该等级每轮抽出的人数
SELECTOUT为已经抽出的人数

NEEDNUM为该轮需要抽出的人数

比如说总共有50个中奖名额,每次抽出25个,已经抽了10个,那么该轮就需要再抽15个啦。
那公式应该就是 NEEDNUM=EVRYTIME-SELECTOUT。

但应该怎么描述下一轮要抽多少呢?
再比如我已经抽了30个,那应该怎么通过逻辑表示出呢?需要增加其他变量吗?

就是那个已抽出的量困扰了我好多天,感谢各位指教一下了。

再举些例子说吧
比如 总共100个 每次抽10个 已经抽了18个 那么 本次应该就需要抽2个
又如 总共2个 每次抽1个 已经抽了2个 那么 本次就需要0个

就是大概这样的逻辑了,不知该如何代码化···

回复列表 (共5个回复)

沙发

看不懂,果然是逻辑问题。

板凳

[quote]看不懂,果然是逻辑问题。[/quote]

其实也不复杂,就是抽奖中途遇到死机的话,重启程序能接着抽未抽完的~就是想达到这个效果

3 楼

这么说就简单多了。
与程序同目录下开辟一个“数据文件”。每次启动先检查里面的数据,看执行到什么地方,就继续。
唯一要注意的“技术”问题就是,产生的数据要“即时”写入数据文件。
每产生一个数据,立即开打文件写数据,然后关闭。
下一个数据再打开、写、关。所以就不怕死机。

4 楼

其实我就是用INI文件来记录抽到哪里的,但想不清应该怎样把这个量反应到我原来的程序结构里,几个量的关系怎么也不能表达到简单的公式里。
我SELECTOUT就是读取INI文件中的已抽出数量

5 楼

ini没有用过。

我来回复

您尚未登录,请登录后再回复。点此登录或注册