Random Uniform() 一直给我相同的数字我的脚本从 Random Uniform() 返回随机值,直到我将一些结果写入数据表。当我写入表时,Random Uniform() 总是返回相同的值。请参阅下面脚本中的注释。将不胜感激任何帮助。
非常感谢,
约翰
names default to here(1);
clear log();
include("defineVectorClass.jsl");
dtChaos = open("chaos.jmp");
proportionToCorner = 0.5;
A = new object(Vector(column(dtChaos,"x")[1],column(dtChaos,"y")[1]));
B = new object(Vector(column(dtChaos,"x")[2],column(dtChaos,"y")[2]));
C = new object(Vector(column(dtChaos,"x")[3],column(dtChaos,"y")[3]));
triangle = {A,B,C};
dtChaos<<GRAPH builder=""></GRAPH>回复:Random Uniform() 一直给我相同的数字谢谢 Xan
回复:Random Uniform() 一直给我相同的数字感谢您及时的回复。标签对于模拟并不重要,所以我只是按照您的建议将它们关闭,并且一切正常。
回复:Random Uniform() 一直给我相同的数字另一个解决方法是关闭图形首选项组中的隐藏重叠标签首选项。 这似乎是干扰随机流的来源。
回复:Random Uniform() 一直给我相同的数字(谢谢@EvanMcCorkle和@danschikore在我今天早上进来之前就把这个弄糊涂了!)
这是 JMP 标记绘图中的错误;使 JSL 运行的最简单方法是删除标签状态并将其更改为颜色。
Use color rather than label使用颜色而不是标签
问题在于将标签定位在数据点周围的代码;它需要一个可重复的随机数序列来处理冲突的标签,但它并没有将重置保持为自身……正如您所注意到的那样。
另一种保留标签的方法需要在您的 JSL 中有一个解决方法:
r = Random Seed State(); // the following statements make the graph update...
newX = current:x;
newY = current:y;
column(dtChaos,"X")[1+4]=newX;
column(dtChaos,"Y")[1+4]=newY;
wait(2);
Random Seed State(r);
这会捕获并恢复 t绘制标记前后的随机状态。 更改表中的值和等待的组合会触发图形更新。
感谢您的测试用例;正在进行适当的修复。
回复:Random Uniform() 一直给我相同的数字我看到了这个问题,还不知道答案。
我会在星期一早上看看它。
@EvanMcCorkle