0

たとえば、ユーザーは指定された範囲内の数値を入力する必要があり、ユーザーが選択した数値よりも大きい数値を生成するのにかかった回数を MatLab に追跡させたいとします。

関数にどのように条件を設定し、randi試行回数をどのように追跡しますか?

ユーザーの入力を変数aに設定し、入力値「a」が指定した範囲内にある必要があるという「while」条件を述べ、真の場合randiはその条件で関数を開始することを考えていました。入力された値が指定された範囲内にない場合、エラー メッセージを表示します。

4

1 に答える 1

1

randではなく (0 から 1 の間の数値を選択)を使用する単純な実装を次に示しrandiます。

buff=1000; % number of random numbers to test with each iteration... 
yn=1;
while yn
    num=input('Enter a number between 0 and 1 >> ');
    nn = -buff;
    found=[];
    while isempty(found)
       nn= nn+buff;
       found=find(rand(buff,1)>num,1,'first');
    end
    nn=nn+found;
    disp(nn)
    yn=input('Would you like to try again? (0=no,1=yes) >> ');
end

変数nnには、最初の成功までの試行回数が含まれます。

テストの実行は次のようになります。

Enter a number between 0 and 1 >> 0.999
        1325
Would you like to try again? (0=no,1=yes) >> 0

使用する変更randiは簡単です。

于 2013-09-21T07:14:37.243 に答える