라일리 정리


13

S. Ryley는 1825 년 정리를 증명했습니다.

모든 합리적인 숫자는 세 개의 합리적인 큐브의 합으로 표현 될 수 있습니다.

도전

일부 유리수 주어 rQ 세 유리수를 찾을 , B , C Q 되도록 R은 = 3 + B (3) + (C) 3 .a,b,cQ

r=a3+b3+c3.

세부

제출물은 충분한 시간과 메모리가 주어진 경우 모든 입력에 대한 솔루션을 계산할 수 있어야합니다. 즉 int, 분수를 나타내는 두 개의 32 비트 가 충분하지 않습니다.

30=3982933876681363660054951533977505554546352=607029013173+2396129245436192271286533071728=(12)3+(13)3+(14)30=03+03+031=(12)3+(23)3+(56)342=(1810423509232)3+(1495210609)3+(25454944)3


1
나는 Japt에서 이런 종류의 일이 있었지만 종종 "너무 많은 재귀"오류가 발생했습니다. 이 전략은 "난수를 얻습니다. 정답이 될 때까지 다시 시도하십시오."
카밀 Drakari

1
bignum 지원이 필요하면 많은 언어가 불필요하게 배제되거나 구현에 낭비되는 상용구가 많이 필요합니다
Sparr

2
@Sparr 간단한 입력의 경우에도 출력이 "대형"이거나 사용하는 방법에 따라 계산의 중간 값이 매우 클 수 있으므로 의도적으로 선택했습니다. 따라서 임의의 정밀도 숫자로 작업하는 것이이 도전에 중요한 포인트였습니다 (아마도 다른 숫자 이론에서도 도전합니다).
flawr

1
( p 1[p1,p2,p3,q] 로 해석되는 출력이 허용됩니까?? (p1q)3+(p2q)3+(p3q)3
Arnauld

비슷한 맥락에서 출력 된 세 개의 합리적인 숫자가 가장 단순한 형태 여야합니까?
Quintec

답변:


10

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 = 의 합리적 솔루션에서x3+y3+z3=R. 에든버러 수학 학회지, 2(2), 92-100.

r=(27r3+127r29r+3)3+(27r3+9r127r29r+3)3+(27r2+9r27r29r+3)3

온라인으로 확인하십시오!


1
당신은 summands의 순서를 변경할 수 있기 때문에 -5 바이트
Black Owl Kai

1
제 피가수의 @BlackOwlKai 분자는 이 아닌 - 27 (R) 2 + 9 (R) - 1 . 27r3+9r127r2+9r1
alephalpha

8

하스켈 , 95 89 76 69 68 바이트

f x=[w|n<-[1..],w<-mapM(\_->[-n,1/n-n..n])"IOU",x==sum((^3)<$>w)]!!0

온라인으로 사용해보십시오!

간단한 무차별 솔루션. 이 형태의 유리수의 모든 트리플 테스트

(a1n,a2n,a3n)with nainn.

  • (a1n1,a2n2,a3n3)=(a1n2n3n1n2n3,a2n1n3n1n2n3,a3n1n2n1n2n3).
  • nainn
    ain=aiNnN
    N

"IOU"는 무엇을합니까?
Solomon Ucko 21

@SolomonUcko 아무것도 특별한, 그것은 길이 3의 다른 목록으로 좋은으로의
Delfad0r

@ H.PWiz 입력 된 입력이 허용되는지 가정 할 때 Meta에 대한 합의를 찾을 수 없었지만 여전히 그 가정없이 코드를 단축 할 수있는 방법을 찾았습니다. 감사!
Delfad0r

4
@ Delfad0r 함수를 정의하기 위해 가져 오기에서 아무것도 명시 적으로 필요하지 않은 경우 가능한 가져 오기를 계산할 필요가없는 "합의" 가 있습니다. (그리고 호출 될 때 올바른 유형이 함수에 전달되었다고 가정 할 수 있습니다.)
flawr

1
사용하여 하나의 바이트를 저장[-n,1/n-n..n]
기독교 승인 Sievers을

6

껍질 , 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.

2

자바 스크립트 (Node.js) , 73 바이트

로 입력을받습니다 (p)(q). BigInt 리터럴입니다.

[[p1,q1],[p2,q2],[p3,q3]]그런 반환=(11)+(22)+().

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의 합리적 솔루션 에서 파생되었습니다 .


2

하스켈 , 70 바이트

에서는 숫자의 이론 입문 (하디 및 라이트에 의해), 심지어는 합리적인 파라미터를 포함한다는 구성이있다. 골프 목적으로이 매개 변수를 1로 설정하고 최대한 줄이려고했습니다. 결과는 공식입니다

아르 자형[아르 자형648아르 자형2+77760아르 자형+37324872(아르 자형+72)2,12(아르 자형72)아르 자형(아르 자형+72)2,아르 자형2720아르 자형+518472(아르 자형+72)]

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]

온라인으로 사용해보십시오!


1

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에서 제공 한 공식을 사용하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.