用Delphi实现数组中的随机值
我有以下代码用Delphi实现数组中的随机值,delphi,Delphi,我有以下代码 const dimensions: array [1 .. 5] of string = ('100 ', '200', '300 ', '400', '500 '); 我要做的是在该数组中选择一个随机值显示在ShowMessage()上 但如何做到这一点,有人可能会说,当您从数组中选择一个随机值时?您可以使用它来选择1到5之间的值。这样做: Index := RandomRange(1, 6); 这似乎有点违反直觉,但下限是包容的,上限是非包容的 另一种方法是直接使用R
const
dimensions: array [1 .. 5] of string = ('100 ', '200', '300 ', '400', '500 ');
我要做的是在该数组中选择一个随机值显示在ShowMessage()上
但如何做到这一点,有人可能会说,当您从数组中选择一个随机值时?您可以使用它来选择1到5之间的值。这样做:
Index := RandomRange(1, 6);
这似乎有点违反直觉,但下限是包容的,上限是非包容的
另一种方法是直接使用Random:
Index := 1 + Random(5);
您甚至可以删除数组并编写:
IntToStr(100*RandomRange(1, 6))
最简单的解决办法是
myString := dimensions[Random(Length(dimensions))];
请记住在使用random之前初始化random种子,否则将无法获得“true”随机值
Randomize;
myString := dimensions[Random(Length(dimensions))];
Showmessage(myString);
使用
RandomRange(1,5)
并将其用作数组的索引;但是显示此错误“E2003未声明的标识符:'RandomRange'”Google“delphi RandomRange”建议:“使用数学,//包含RandomRange命令的单元”好的,谢谢帮助。@mrbatch实际上,正如我在回答中解释的,该代码是错误的。该代码是错误的。数组边界为1..5。您的代码使用索引0..4。一旦你解决了它,你的答案将是我的一个子集。