认证高级PHP讲师
暴力的な解決策; 整数は浮動小数点数よりも 10,000 倍使いやすいです
暴力、アルゴリズム的には暴力のみであるべきです。 しかし、暴力を行使する方法はたくさんあります。
両辺 (pqrs) を乗算すると、$$ qrs+prs+pqs+pqr=pqrs $$ が得られます。そのうち 3 つをブルート フォースして 4 つ目を計算できます。
上記の式を整理すると、 $$ ps(q+r)+qr(p+s)=pqrs $$ $$ qr(p+s)=ps[qr-(q+r )] となります。 $$ $$ frac{p+s}{ps}=frac{qr-(q+r)}{qr} $$
この方法では、そのうちの 2 つを総当たりで実行するだけで済み、総当たり処理中の結果を書き留めて、今回計算された値が以前に出現したかどうかを毎回テーブルで確認します。
解決策が 1 つだけ必要な場合は、p=q=r=s=4 で問題ありません!
p=q=r=s=4
私が回答した質問: Python-QA
私も暴力的な解決策を考えますが、新たな発見がありました。
1/p+1/q+1/r+1/s=1 および p= 1、p
式の右辺のx(x=1)が決まるたびに、pの最大値と最小値が決まるはずです。 pが決まるたびに(ループ時)、qの最大値と最小値が決まります。 r と s についても同様です。
しかし、4、6、12、42 の法則を数式で表現することはできていません。1/p+1/q+1/r+ に適用できる数式アルゴリズムがあるはずです。 1/s+1 /...=x。
暴力的な解決策;
リーリー整数は浮動小数点数よりも 10,000 倍使いやすいです
暴力、アルゴリズム的には暴力のみであるべきです。
しかし、暴力を行使する方法はたくさんあります。
両辺 (pqrs) を乗算すると、$$ qrs+prs+pqs+pqr=pqrs $$ が得られます。そのうち 3 つをブルート フォースして 4 つ目を計算できます。
上記の式を整理すると、 $$ ps(q+r)+qr(p+s)=pqrs $$ $$ qr(p+s)=ps[qr-(q+r )] となります。 $$
$$ frac{p+s}{ps}=frac{qr-(q+r)}{qr} $$
この方法では、そのうちの 2 つを総当たりで実行するだけで済み、総当たり処理中の結果を書き留めて、今回計算された値が以前に出現したかどうかを毎回テーブルで確認します。
解決策が 1 つだけ必要な場合は、
p=q=r=s=4
で問題ありません!私が回答した質問: Python-QA
私も暴力的な解決策を考えますが、新たな発見がありました。
1/p+1/q+1/r+1/s=1 および p= 1、p
式の右辺のx(x=1)が決まるたびに、pの最大値と最小値が決まるはずです。
pが決まるたびに(ループ時)、qの最大値と最小値が決まります。
r と s についても同様です。
しかし、4、6、12、42 の法則を数式で表現することはできていません。1/p+1/q+1/r+ に適用できる数式アルゴリズムがあるはずです。 1/s+1 /...=x。