给定这个函数,它返回一个随机数(有效)
function montekarlo(diap1: double; diap2: double): double;
var
Xx: array of double;
i, j, l,k: integer;//количество итераций
min: double;
begin
randomize;
l := PABCSystem.Random(7) + 5;
Xx := new double[l];
for i := 0 to l - 1 do
begin
Xx[i] := PABCSystem.Random * diap2 + diap1;
end;
min := Xx[1];
for i := 2 to l - 1 do
begin
if Xx[i] < min then min := Xx[i];
end;
min := Xx[i];
montekarlo := min;
end;
问题是它显示相同的值。如何让它在新通话中更改号码?
该图清楚地显示了问题,即数字显示但相同(顶部除外,因为它是从键盘设置的)。
我怎样才能确保数字不一样?
我绘制元素本身并以这种方式调用函数(有几条这样的线,只是坐标不同)
gr.DrawString(montekarlo(diap1, diap2).ToString('N2'), new System.Drawing.Font('Times New Roman', 10, System.Drawing.FontStyle.Regular), System.Drawing.Brushes.Black, 440, 90);
我尝试使用一个循环来设置迭代次数,但它再次在所有地方输出相同的内容。
PS 问题为什么是 Pascal ABC.NET,而不是 C、C++、C#,请不要问。在这个任务中,你需要用 Pascal ABC .NET 编写一个程序。
您是否在编译器选项中关闭了“范围检查”?
我想再次提请您注意这条线
第二个周期后。执行时,变量
i已达到 valuel。因此,您超出了数组的边界。因此,您对随机数生成的所有操作均无效。