Foxtable(狐表)用户栏目专家坐堂 → 如何根据已知条件生成随机数?


  共有3949人关注过本帖树形打印复制链接

主题:如何根据已知条件生成随机数?

帅哥哟,离线,有人找我吗?
lgz518
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
如何根据已知条件生成随机数?  发帖心情 Post By:2021/11/17 9:27:00 [只看该作者]

1,表A和表B关联,已知表A的上限,中限,下限,如何生成B关联的随机数?
2,在EXECL中是使用下面公式,在狐表中如何实现?具体如图所示:
=((25.8+RAND()/11)+(25.8-RAND()/11))/2,

图片点击可在新窗口打开查看此主题相关图片如下:随机数.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/17 9:30:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2021/11/17 10:14:00 [只看该作者]

Select Case e.DataCol.Name
    Case "第二列", "第三列"
        Dim d As Double = ((e.DataRow("第二列") + Rand.Next()/11)+ (e.DataRow("第二列") - Rand.Next()/11))/ 2
        e.DataRow("第四列") = d
End Select
用这个上面代码生成一数据,不是需求的要的值,如何上面求?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/17 10:19:00 [只看该作者]

计算规则是什么?

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2021/11/17 10:33:00 [只看该作者]

1.是根据表A的上限和中限和下限的条件,生成随机,看EXCEL的公式,它是
以主表表A的中限数生成明细表B的随机数,如一楼的图,EXCEL的公式的值25.8是主表的中限的值,以此按其公式生成明细表B的随机数。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/17 10:42:00 [只看该作者]

请详细说明计算规则。我没有时间去反推您的公式

现在3楼的额代码计算结果是怎么样的?怎么样才是正确的结果?

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2021/11/17 11:03:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:随机数.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/17 11:26:00 [只看该作者]

这个意思?

Select Case e.DataCol.Name
    Case "上限", "下限"
for ia s integer = 1 to 15
dim r as row = tables("表B").addnew
        r("A") =  ((e.DataRow("中限") + Rand.Next(e.DataRow("下限"),e.DataRow("上限"))/11)+ (e.DataRow("中限") - Rand.Next(e.DataRow("下限"),e.DataRow("上限"))/11))/ 2
        r("B") = ((e.DataRow("中限") + Rand.Next(e.DataRow("下限"),e.DataRow("上限"))/11)+ (e.DataRow("中限") - Rand.Next(e.DataRow("下限"),e.DataRow("上限"))/11))/ 2
        r("C") = ...........
……
next
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2021/11/17 12:40:00 [只看该作者]

老师,差不多,有三个问题:
1,需求是限制每列只能是25行,但按8楼是存在这样录入上限后就生成15条记录,录入下限后又生成15条记录,无法限制只有25条?
2,按8楼是存在这样录入上限后就生成15条记录,生成都小数,录入下限后生成15条记录的值全都中限的值,不是随机值?
3,改中限,下限录入后生成随机,录入中限随机个别会超过上限,需求是不能超过上限,录入下限也是生成15条中限值,不是随机值?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/17 13:37:00 [只看该作者]

1、判断一个2个列都录入数据再处理
2、请认真看一下2楼帮助的说明和用法,这个生成的是整数,调用前把上下限乘于100,生成的随机值再除以100
3、帮助Rand类不可能会出现大于上下限的值,请认真测试

 回到顶部
总数 15 1 2 下一页