CJam (59 byte)
{[WZ~C24X8TT]f*[4XGYC6 4Y].+_0=!>2%Z65135Zb+:(3/.f#:.*)W*+}
Ini adalah blok anonim (fungsi) yang mengambil bilangan bulat atau ganda pada tumpukan dan menghasilkan array dengan tiga ganda. Ini memiliki dua kasus internal untuk menangani semua input non-negatif, karena dengan hanya satu kasus itu akan pecah pada salah satu 0.25
atau 4
. Masih rusak untuk input -12
dan -1.3333333333333333
, tetapi spek memungkinkan ...
The demo online mengeksekusinya dan kemudian menambahkan sampai nilai-nilai, mencetak keempat, dan mengalikan mereka untuk menunjukkan bahwa itu mendapat nilai asli (modulo kesalahan pembulatan).
Latar belakang matematika
Mengikuti Noam Elkies kami mendefinisikan bantu . Kemudian dan atau . Ini memiliki banyak simetri; solusi apa pun akan memiliki empat formula dan kita bisa memilih tiga yang paling golf.w = - x - y- zx + y+ z+ w = 0- x yzw = ax yzw + a = 0
Rusa memberikan empat keluarga set solusi. Euler:
xyzw====6 a s t3( a t4- 2 s4)2( 4 a t4+ s4) ( 2 a2t8+ 10 a s4t4- s8)3 s5( 4 a t4+ s4)22 t ( a t4- 2 s4) ( 2 a2t8+ 10 a s4t4- s8)2 ( 2 a2t8+ 10 a s4t4- s8)3 s3t ( 4 a t4+ s4)- ( 2 a2t8+ 10 a s4t4- s8)6 s3t ( a t4- 2 s4)
Satu terkait dengan Euler:
xyzw====( 8 s8+ a2) ( 8 s8- 88 a s4- a2)12 s3( s4- a ) ( 8 s8+ 20 a s4- a2)( 8 s8+ a2) ( 8 s8- 88 a s4- a2)12 s3( 8 s4+ a ) ( 8 s8+ 20 a s4- a2)192 a s5( s4- a )2( 8 s4+ a )2( 8 s8+ a2) ( 8 s8- 88 a s4- a2) ( 8 s8+ 20 a s4- a2)- 3 dt ( 8 dt8+ 20 a s4- a2)34 ( s4- a ) ( 8 s4+ a ) ( 8 s8+ a2) ( 8 s8- 88 a s4- a2)
Yang lebih sederhana:
xyzw====( s4- 4 a )22 s3( s4+ 12 a )2 a ( 3 s4+ 4 a )2s3( s4- 4 a ) ( s4+ 12 a )s5+ 12 a s2 ( 3 s4+ 4 a )- 2 s5( s4+ 12 a )( s4- 4 a ) ( 3 s4+ 4 a )
Dan satu yang terkait dengan yang itu:
xyzw====s5( s4- 3 a )32 ( s4+ A ) ( s12+ 12 a s8- 3 a2s4+ 2 a3)s12+ 12 a s8- 3 a2s4+ 2 a32 s3( s4- 3 a ) ( 3 s4- a )2 a ( s4+ a )2( 3 s4- a )2s3( s4- 3 a ) ( s12+ 12 a s8- 3 a2s4+ 2 a3)- 2 s ( s12+ 12 a s8- 3 a2s4+ 2 a3)( s4- 3 a ) ( s4+ a ) ( 3 s4- a )
Perhatikan bahwa setiap keluarga memiliki setidaknya dua penyebut dari bentuk untuk dan positif : karena semua istilah yang terlibat adalah rasional, itu berarti ada beberapa positif dengannya kita mendapatkan pembagian dengan nol. Karena itu kita harus menggunakan setidaknya dua set solusi yang memiliki singularitas pada nilai yang berbeda dari . Secara intuitif akan menjadi golfiest untuk memilih dua set dari keluarga yang sama. Saya telah memilih keluarga paling sederhana (yang ketiga) dengan parameter dan .p q a a s = 1 s = 2p s4- qSebuahpqaas=1s=2