S. Ryley는 1825 년 정리를 증명했습니다.
모든 합리적인 숫자는 세 개의 합리적인 큐브의 합으로 표현 될 수 있습니다.
도전
일부 유리수 주어
r∈Q세 유리수를 찾을 , B , C ∈ Q 되도록 R은 = 3 + B (3) + (C) 3 .
a,b,c∈Q
세부
제출물은 충분한 시간과 메모리가 주어진 경우 모든 입력에 대한 솔루션을 계산할 수 있어야합니다. 즉 int
, 분수를 나타내는 두 개의 32 비트 가 충분하지 않습니다.
예
답변
Pari / GP , 40 바이트
r->[x=27*r^3+1,9*r-x,z=9*r-27*r^2]/(3-z)
같은 길이, 같은 공식 :
r->d=9*r^2-3*r+1;[x=r+1/3,3*r/d-x,1/d-1]
이 공식은 다음과 같습니다 :
Richmond, H. (1930). x 3 + y 3 + z 3 = 의 합리적 솔루션에서
. 에든버러 수학 학회지, 2(2), 92-100.
답변
하스켈 , 95 89 76 69 68 바이트
- H.PWiz 덕분에 -18 바이트
- Christian Sievers 덕분에 -1 바이트
f x=[w|n<-[1..],w<-mapM(\_->[-n,1/n-n..n])"IOU",x==sum((^3)<$>w)]!!0
간단한 무차별 솔루션. 이 형태의 유리수의 모든 트리플 테스트
-
(a1n1,a2n2,a3n3)=(a1n2n3n1n2n3,a2n1n3n1n2n3,a3n1n2n1n2n3).
−n≤ain≤nain=aiNnNN
답변
껍질 , 14 바이트
ḟo=⁰ṁ^3π3×/NİZ
간단한 무차별 대입 솔루션.
온라인으로 사용해보십시오!
설명
Husk의 Division은 기본적으로 유리수를 사용하며 직교 제품은 무한리스트에 대해 올바르게 작동하므로 매우 간단한 프로그램입니다.
ḟo=⁰ṁ^3π3×/NİZ
İZ Integers: [0,1,-1,2,-2,3,-3...
N Natural numbers: [1,2,3,4,5...
×/ Mix by division: [0,1,0,-1,1/2,0,2,-1/2,1/3...
This list contains n/m for every integer n and natural m.
π3 All triples: [[0,0,0],[0,0,1],[1,0,0]...
ḟ Find the first one
ṁ^3 whose sum of cubes
o=⁰ equals the input.
답변
자바 스크립트 (Node.js) , 73 바이트
로 입력을받습니다 (p)(q)
.
과
큐BigInt 리터럴입니다.
[[p1,q1],[p2,q2],[p3,q3]]
그런 반환
.
p=>q=>[x=p*(y=p*(p*=9n*q*q)*3n/q)/q+(q*=q*q),p-x,p-=y].map(x=>[x,3n*q-p])
HW Richmond (1930) 에서 파생되었으며 , x 3 + y 3 + z 3 = R의 합리적 솔루션 에서 파생되었습니다 .
답변
하스켈 , 70 바이트
에서는 숫자의 이론 입문 (하디 및 라이트에 의해), 심지어는 합리적인 파라미터를 포함한다는 구성이있다. 골프 목적으로이 매개 변수를 1로 설정하고 최대한 줄이려고했습니다. 결과는 공식입니다
f r|t<-r/72,c<-t+1,v<-24*t/c^3,a<-(v*t-1)*c=((a+v*c+c)/2-)<$>[a,v*c,c]
답변
perl -Mbigrat -nE, 85 바이트
$_=eval;($a,$b)=($_*9,$_**2*27);$c=$b*$_;say for map$_/($b-$a+3),$c+1,-$c+$a-1,-$b+$a
$_=eval;
입력이 정수라는 것을 알고 있다면 8 바이트 (행간 )를 저장할 수 있습니다 . 이 부분은 프로그램이 양식의 입력을 갖도록하는 데 필요합니다 308/1728
. STDIN에서 입력을 읽습니다. @alephalpha에서 제공 한 공식을 사용하고 있습니다.