ホームページ  >  記事  >  バックエンド開発  >  3 つの数値の合計が範囲内にある場合、3 つの数値を見つけます

3 つの数値の合計が範囲内にある場合、3 つの数値を見つけます

WBOY
WBOYオリジナル
2016-06-13 12:18:001092ブラウズ

3 つの数値の合計は範囲内にあります。3 つの数値を見つけます
これら 3 つの数値の値の範囲は 1 ~ 6 で、整数である必要があります

最初のケースでは、3 つの数値の合計は次のようになります。値の範囲は 4 ~ 10 です。これら 3 つの数値はランダムに生成されます (3 つの数値すべてを繰り返すことができる場合と、3 つの数値すべてを繰り返すことができない場合の 2 つのケースに分かれます)。

2 番目のケースでは、 3 つの数値の値の範囲は 11 ~ 17 です。これら 3 つの数値をランダムに生成します (3 つの数値をすべて繰り返すことができる場合と 3 つの数値を繰り返すことができない場合の 2 つの状況に分かれます)


例:
の場合3 つの数字すべての繰り返しが許可されている場合、3 つの数字の合計が 15 の場合、3 つの数字は 5,5,5 になります。すべての繰り返しが許可されていない場合、
3 つの数字は 4 のみになります。 5,6 または、6,6,3 または 3,6,6 およびその他の組み合わせ

関数を検索します。

//指定された合計に従って、合計が次の値を持つことが許可されるかどうか正確に 3 つの数値の 3 つの配列、
//必須 6,6,3 や 3,6,6 など、すべての可能な組み合わせを返すことができます。
//プログラムでは、考えられるすべての組み合わせのうち 1 つがランダムに返されることだけが必要です。
function get3nums($この場合、$ はすべてを繰り返すことができます)
//たとえば、list($rand1,$rand2,$rand3) = get3nums(2,false);// 2 番目この場合、3 つの数値をすべて同じにすることはできません
//Get $rand1=6, $rand2=6, $rand3=3

function get3nums($qingkuang,$ifxiangtong){



-----解決策----------------------
/**
* @$start 範囲の下限
* @$end 範囲の上限
* @$repeat 重複は許可されますが、デフォルトでは許可されません
**/
function get3nums($start, $end, $repeat=false) {
if(!$repeat){
$n =rand ($start, $end); //指定された範囲の数値を取得します
for($i=1;$i<7;$i ){
for($j=1;$j<7 ;$j ) {<> $ K = $ n-$ i-$ j;
if ($ k & lt; 7 && $ k & gt; 0) {
if (($ i == $ j と $ j == $ ) }
}
}
}else{
$n =rand($start, $end);
$avg=$n/3;
if( $avg!=intval($avg)) {
「値がありません」 ;
}
}
}

print_r(get3nums(4, 10) );
echo '
';
print_r(get3nums(4, 10) , 1));
echo '
';
print_r(get3nums(11, 17) ));
echo '
';
print_r(get3nums(11, 17 , 1));
?>


------解決策のアイデア----------------------

もう一度確認してください


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。