我正在寻求帮助。我正在寻找创建一个数值概率生成器,但让我解释一下我要求的那种帮助。 我已经想出了一个可以随机生成数字的源代码,但是我想让一些数字生成的机会比其他数字更多。
到目前为止,我已经得到了这个,但这只会产生这个数字,而这就是我大脑爆炸的地方。此代码不会区分数字,它不会生成12 ..它生成1或2。 我想让它“看”让我们说...... a 1 a 2和12
请帮帮我。
var
i: integer;
const
str = '0102030405060708091011121314151617181920212223242 526272829303132333435363738394041424344454647484950';
max = 5;
begin
Edit1.Text := '';
Randomize;
for i := 1 to max do
Edit1.Text := Edit1.Text + str[random(length(str))+1];
诚恳, Hopsins
答案 0 :(得分:0)
要从str
中提取数字,您需要两位数字。要选择' 01',您需要从位置#1开始拉出两个字符。对于' 02',您需要从#3位置开始。 ' 03'从位置#5开始。您可能想要使用表达式:
copy ( str, random ( length(str) div 2 ) * 2 + 1, 2 )
此处length(str)
为100,length(str) div 2
为50。
random
生成0到49之间的数字。
将其乘以2,并加1,以获取第一个字符的索引。
然后使用copy
从该位置开始拉出两个字符。