Delphi 如何从几个字符串中随机选择一个?

Delphi 如何从几个字符串中随机选择一个?,delphi,random,Delphi,Random,我有以下代码: letsdoit(something,'abcd'); letsdoit(something,'asdfasdf'); letsdoit(something,'gagaga'); 如果可能的话,我希望它是一条简单的线,逻辑如下: (letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf')) OR (letsdoit(something,'gagaga')); 因此,它有33%的机会从三者中选择一个。或: (l

我有以下代码:

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%的机会选择右边的东西

我的问题是:

  • 如何在三者之间随机选择,并且只做一件事

  • 如何在两件事之间随机化,只做一件事


  • 我有个问题,你用了“letsdoit”但“某物”在哪里?我得到一个错误:错误:不兼容的类型:'Integer'和'String'只需添加
    letsdoit
    的这个参数。我展示了一个选择随机字符串的方法。如何使用它-你的任务。你意识到
    RandomChooseString
    的作用吗?我现在必须想一想,我希望我能理解。我不理解所有的
    (const A:array of string):string并获取一些“不兼容类型:'Integer'和'String'”错误,但这可能是一个很好的答案。我真是太蠢了,根本不明白我的错误。我的工作是随机的done@DavidHeffernan你的例子中的(3)是什么?是选择的数量。我想你已经阅读了Random的文档了吗?谢谢,我现在已经这样解决了
    var randomer:integer;随机化器:=随机(3);如果randomer=0,则开始letsdoit(某物,'abcd');结束;如果randomer=1,则开始letsdoit(某物,'asdfasdf');结束;如果randomer=2,则开始letsdoit(某物,'gagaga');结束不要忘记在应用程序开始时调用
    随机化()。。。
    
    function RandomChooseString(const A: array of string): string; 
    begin
       Result := A[Random(Length(A))]
    end;
    
    letsdoit(something, RandomChooseString(['aaa', 'bbb', 'ccc']));