S.ライリーは1825年に定理に従って証明しました。
すべての有理数は、3つの有理立方体の合計として表すことができます。
チャレンジ
いくつかの有理数を考えると 3つの有理数見つけ、B 、C ∈ Qは、そのようなことを、R = A 3 + B 3 + C 3。
詳細
提出は、十分な時間とメモリが与えられたすべての入力に対してソリューションを計算できる必要があります。つまり、たとえば、2つの32ビットint
が分数を表すだけでは不十分です。
例
[p1,p2,p3,q]
、と解釈?
S.ライリーは1825年に定理に従って証明しました。
すべての有理数は、3つの有理立方体の合計として表すことができます。
いくつかの有理数を考えると 3つの有理数見つけ、B 、C ∈ Qは、そのようなことを、R = A 3 + B 3 + C 3。
提出は、十分な時間とメモリが与えられたすべての入力に対してソリューションを計算できる必要があります。つまり、たとえば、2つの32ビットint
が分数を表すだけでは不十分です。
[p1,p2,p3,q]
、と解釈?
回答:
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)で提供されています。 Rationalソリューションについて。Edinburgh Mathematical Societyの議事録、2(2)、92-100。
f x=[w|n<-[1..],w<-mapM(\_->[-n,1/n-n..n])"IOU",x==sum((^3)<$>w)]!!0
シンプルなブルートフォースソリューション。フォームの有理数のすべてのトリプルをテストします
[-n,1/n-n..n]
ḟo=⁰ṁ^3π3×/NİZ
シンプルなブルートフォースソリューション。 オンラインでお試しください!
ハスクの除算はデフォルトで有理数を使用し、デカルト積は無限リストに対して正しく機能するため、非常に簡単なプログラムになります。
ḟ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.
入力をとして取ります(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])
数字の理論入門(ハーディとライトによる)も合理的パラメータを含むことが建設があります。ゴルフの目的のために、このパラメーターを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]
$_=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で指定された式を使用しています。