CJam (59 байт)
{[WZ~C24X8TT]f*[4XGYC6 4Y].+_0=!>2%Z65135Zb+:(3/.f#:.*)W*+}
Це анонімний блок (функція), який бере ціле чи подвійне на стек і створює масив з трьома подвійними. У ньому є два випадки для внутрішньої обробки всіх негативних входів, оскільки лише один випадок може перерватися на 0.25
або 4
. Він все одно перерви для входів -12
і -1.3333333333333333
, але специфікація дозволяє це ...
Онлайн демо виконує його , а потім складає значення, друкує всі чотири, і примножує їх , щоб показати , що він отримує початкове значення (помилка округлення по модулю).
Математичний фон
w=−x−y−zх + у+ z+ w = 0- х уzw = aх уzw + a = 0
Elkies дає чотири сімейства наборів рішень. Ойлер:
хуzш====6 a s t3( a t4- 2 с4)2( 4 a t4+ с4) ( 2 а2т8+ 10 а с4т4- с8)3 с5( 4 a t4+ с4)22 т ( a t4- 2 с4) ( 2 а2т8+ 10 а с4т4- с8)2 ( 2 а2т8+ 10 а с4т4- с8)3 с3t ( 4 a t4+ с4)- ( 2 а2т8+ 10 а с4т4- с8)6 с3t ( a t4- 2 с4)
Один, що стосується Ейлера:
хуzш====( 8 с8+ а2) ( 8 с8- 88 а с4- а2)12 с3( с4- а ) ( 8 с8+ 20 а с4- а2)( 8 с8+ а2) ( 8 с8- 88 а с4- а2)12 с3( 8 с4+ а ) ( 8 с8+ 20 а с4- а2)192 а с5( с4- а )2( 8 с4+ а )2( 8 с8+ а2) ( 8 с8- 88 а с4- а2) ( 8 с8+ 20 а с4- а2)- 3 с ( 8 с8+ 20 а с4- а2)34 ( с4- а ) ( 8 с4+ а ) ( 8 с8+ а2) ( 8 с8- 88 а с4- а2)
Більш простий:
хуzш====( с4- 4 а )22 с3( с4+ 12 а )2 а ( 3 с4+ 4 а )2с3( с4- 4 а ) ( с4+ 12 а )с5+ 12 а с2 ( 3 с4+ 4 а )- 2 с5( с4+ 12 а )( с4- 4 а ) ( 3 с4+ 4 а )
І один, що пов'язаний з цим:
хуzш====с5( с4- 3 а )32 ( с4+ а ) ( с12+ 12 а с8- 3 а2с4+ 2 а3)с12+ 12 а с8- 3 а2с4+ 2 а32 с3( с4- 3 а ) ( 3 с4- а )2 а ( с4+ а )2( 3 с4- а )2с3( с4- 3 а ) ( с12+ 12 а с8- 3 а2с4+ 2 а3)- 2 с ( с12+ 12 а с8- 3 а2с4+ 2 а3)( с4- 3 а ) ( с4+ а ) ( 3 с4- а )
Зауважте, що кожна сім'я має принаймні два знаменники форми п с4- qа за позитив p і q: оскільки всі задіяні терміни раціональні, це означає, що є позитив адля якого ми отримуємо ділення на нуль. Тому ми повинні використовувати щонайменше два набори рішень, які мають свої особливості при різних значенняха. Інтуїтивно зрозуміти, що найкраще вибрати два набори з однієї родини. Я вибрав найпростішу сім'ю (третю) з параметрамиs = 1 і s = 2.