如何随机选择几个字符串之一?

时间:2018-08-12 14:01:12

标签: delphi random

我有此代码:

letsdoit(something,'abcd');
letsdoit(something,'asdfasdf');
letsdoit(something,'gagaga');

如果可能的话,我希望它只是简单的一行,就像这样的逻辑:

(letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf')) OR (letsdoit(something,'gagaga'));

因此,它有33%的机会选择三个。或者:

(letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf'))

因此它有50%的机会选择左边的东西或50%的机会选择右边的东西。

我的问题是:

  1. 如何在三者之间随机分配并且只做一件事。

  2. 如何在两件事之间随机分配并且只能做一件事。

1 个答案:

答案 0 :(得分:6)

function RandomChooseString(const A: array of string): string; 
begin
   Result := A[Random(Length(A))]
end;

letsdoit(something, RandomChooseString(['aaa', 'bbb', 'ccc']));