찾다

 >  Q&A  >  본문

python - 求这样的4个自然数p、q、r、s(p<=q<=r<=s),使得一下等式成立:1/p+1/q+1/r+1/s=1。

PHP中文网PHP中文网2803일 전1226

모든 응답(4)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-18 09:29:36

    폭력적인 해결책
    정수는 부동 소수점 숫자보다 사용하기가 10,000배 더 쉽습니다

    으아악

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:29:36

    폭력은 알고리즘적으로 폭력적이어야 합니다.
    하지만 폭력을 사용하는 방법은 많습니다.

    1. 양변(pqrs)을 곱하면 $$ qrs+prs+pqs+pqr=pqrs $$가 되며, 그중 3개를 무차별 대입하여 4번째를 계산할 수 있습니다.

    2. 위 공식을 정리하면 $$ ps(q+r)+qr(p+s)=pqrs $$ $$ qr(p+s)=ps[qr-(q+r )] $$
      $$ 분수{p+s}{ps}=분수{qr-(q+r)}{qr} $$

    이런 식으로 2개만 무차별 대입하면 되고, 무차별 대입 과정에서 결과를 적고, 이번에 계산한 값이 이전에도 나타났는지 매번 표를 확인하면 됩니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 09:29:36

    하나의 솔루션만 원한다면 p=q=r=s=4도 괜찮습니다!


    내가 답변한 질문: Python-QA

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-18 09:29:36

    저도 폭력적인 해결책을 생각하는데 새로운 발견이 있습니다.

    1/p+1/q+1/r+1/s=1 및 p<=q<=r<=s, p=q=r=s, 4일 때 p가 가장 크다는 것을 알 수 있습니다. /p>= 1, p<=4이면 루프 내 최대값이 결정됩니다. for 루프의 최대값은 4이며, 4보다 큰 값은 고려할 필요가 없습니다. 같은 방식으로 q<=6, r<=12, s<=42를 추론할 수 있으며 이는 for 루프의 범위를 줄일 수 있습니다.

    방정식 우변의 x(x=1)가 결정될 때마다 p의 최대값과 최소값이 결정될 수 있어야 합니다.
    p가 결정될 때마다(루프 시) q의 최대값과 최소값이 결정될 수 있습니다.
    r과 s도 마찬가지입니다.

    그러나 4, 6, 12, 42의 법칙을 수식으로 표현하지 못했습니다. 1/p+1/q+1/r+에 적용할 수 있는 수식 알고리즘이 있어야 합니다. 1/s+1 /...=x.

    회신하다
    0
  • 취소회신하다