私はこれをしたいです
A と B の 2 つの数値があり、A は B より大きくても小さくてもかまいません。やりたいこと:
B と A を比較する
それらの比率が範囲の「外側」である場合、乱数を取り、それを「A」に追加します-新しい比率が条件を満たしているかどうかを確認します
0.95 < ratio < 1.05
そうでない場合は、別のランダムで試してください。
私の問題は、無限ループに遭遇したことです...これが私がしていることです:
float ratio = A/B;
if (ratio < 0.95 || ratio > 1.05) {
do {
// randomly take a negative or positive number
float random_n = ((float)rand())/RAND_MAX - 0.50;
// get an even smaller step
random_n *= 0.1;
// add or subtract the random number (depending on its sign)
A += random_n;
// form the ratio again
ratio = A / B;
cout << "lets see " << A << " " << B << " " << ratio << endl;
}
while (ratio > 0.95 || ratio < 1.05);
}