以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]数学逻辑问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84143)

--  作者:pcxjxjhkw
--  发布时间:2016/4/23 23:24:00
--  [求助]数学逻辑问题

一数学逻辑题,如何用狐表语句解析?

已知有5个抽屉,有N颗乒乓球(小于30颗),如何将乒乓球均匀放入抽屉中?

如遇刚好整除时,可以平均放,也可以一个(仅一个)抽屉多放一颗,另一个抽屉少放一颗。

(假若10颗乒乓球,方案一:2,2,2,2,2;方案二:2,1,2,3,2)

 

从放第1颗到第N颗的代码如何写?  即,在放某一颗时,要判断已放入情况,先放入哪个抽屉合适?

 

 

这个问题,困扰我很久了,求助大家,

谢谢!


--  作者:大红袍
--  发布时间:2016/4/24 13:19:00
--  

1、把兵乓球打乱顺序;

 

2、如果平均放,就总数/5,然后把兵乓球依次放入;

 

3、如果要一个多、一个少,同样总数/5,然后随机一个抽屉多、随机一个抽屉少,然后放入兵乓球


--  作者:pcxjxjhkw
--  发布时间:2016/4/24 18:46:00
--  
没有明白,可否写一代码
--  作者:大红袍
--  发布时间:2016/4/24 19:42:00
--  

 直接打乱然后取数就行啊

 

Dim cnt As Integer = Tables("表A").Rows.Count
Dim ids(cnt - 1) As Integer
For i As Integer = 0 To cnt -1
    ids(i) = i
Next
For i As Integer = 1 To cnt  \'洗牌次数
    Dim id1 As Integer = rand.Next(0,cnt)
    Dim id2 As Integer = rand.Next(0,cnt)
    Dim vid As Integer = ids(id1)
    ids(id1) = ids(id2)
    ids(id2) = vid
Next

For i As Integer = 0 To cnt -1
    output.show(Tables("表A").rows(ids(i))("第一列"))
Next