以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何根据已知条件生成随机数?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173159)

--  作者:lgz518
--  发布时间:2021/11/17 9:27:00
--  如何根据已知条件生成随机数?
1,表A和表B关联,已知表A的上限,中限,下限,如何生成B关联的随机数?
2,在EXECL中是使用下面公式,在狐表中如何实现?具体如图所示:
=((25.8+RAND()/11)+(25.8-RAND()/11))/2,

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


--  作者:有点蓝
--  发布时间:2021/11/17 9:30:00
--  
参考:http://www.foxtable.com/webhelp/topics/0349.htm
--  作者:lgz518
--  发布时间: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
用这个上面代码生成一数据,不是需求的要的值,如何上面求?

--  作者:有点蓝
--  发布时间:2021/11/17 10:19:00
--  
计算规则是什么?
--  作者:lgz518
--  发布时间:2021/11/17 10:33:00
--  
1.是根据表A的上限和中限和下限的条件,生成随机,看EXCEL的公式,它是
以主表表A的中限数生成明细表B的随机数,如一楼的图,EXCEL的公式的值25.8是主表的中限的值,以此按其公式生成明细表B的随机数。


--  作者:有点蓝
--  发布时间:2021/11/17 10:42:00
--  
请详细说明计算规则。我没有时间去反推您的公式

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

--  作者:lgz518
--  发布时间:2021/11/17 11:03:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:随机数.zip


--  作者:有点蓝
--  发布时间: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
--  发布时间:2021/11/17 12:40:00
--  
老师,差不多,有三个问题:
1,需求是限制每列只能是25行,但按8楼是存在这样录入上限后就生成15条记录,录入下限后又生成15条记录,无法限制只有25条?
2,按8楼是存在这样录入上限后就生成15条记录,生成都小数,录入下限后生成15条记录的值全都中限的值,不是随机值?
3,改中限,下限录入后生成随机,录入中限随机个别会超过上限,需求是不能超过上限,录入下限也是生成15条中限值,不是随机值?


--  作者:有点蓝
--  发布时间:2021/11/17 13:37:00
--  
1、判断一个2个列都录入数据再处理
2、请认真看一下2楼帮助的说明和用法,这个生成的是整数,调用前把上下限乘于100,生成的随机值再除以100
3、帮助Rand类不可能会出现大于上下限的值,请认真测试