Desafio
Dadas as raízes de um polinômio separadas por espaços como entrada, produza a forma expandida do polinômio.
Por exemplo, a entrada
1 2
representa esta equação:
(x-1)(x-2)
E deve produzir:
x^2-3x+2
O formato exato da saída não é importante, pode ser:
1x^2+-3x^1+2x^0
ou:
0 0 0
1x^3+0x^2+0x^1+0
ou:
3 14 15 92
1x^4+-124x^3+3241x^2+-27954x^1+57960
Pontuação / Regras
eval
e gostos são proibidos.- Você pode usar qualquer versão do Python ou qualquer outro idioma .
numpy.poly
?Respostas:
Gelatina, 15 bytes
Isso é usado
Æṛ
para construir os coeficientes de um polinômio monônico com raízes determinadas. Experimente online!Como funciona
Versão alternativa, 24 bytes
Isso não usa embutidos relacionados a polinômios. Experimente online!
Como funciona
fonte
MATL , 29 bytes
Entrada é uma matriz com as raízes.
EDITAR% S:
X+
função foi removida, poisY+
inclui sua funcionalidade. Portanto, no código acima, substituaX+
porY+
.YD
função,w
o código acima deve ser removido.O link a seguir inclui essas alterações.
Experimente online!
Explicação
Isso se aplica à convolução repetida com termos do formulário
[1, -r]
onder
é uma raiz.fonte
Ruby, 155 bytes
Função anônima, input é uma matriz das raízes.
Imprime primeiro com a menor potência, portanto, a chamada
f[[1,2]]
(assumindo que você atribuiu a funçãof
) retorna a sequência"2x^0+-3x^1+1x^2"
.fonte
Python 3, 453 bytes (espaços removidos e mais) -> 392 bytes
Marque Este link , ajudará a entender o motivo por trás dessas duas importações.
fonte
from operator import*
,from functools import*
salve alguns bytesimport functools,operator
Haskell, 99
imprime as potências inferiores primeiro, com uma adicional
0+
no início. por exemplo:A função calcula os coeficientes adicionando progressivamente mais raízes, como convoluções, mas sem o builtin.
Em seguida, usamos a lista mônada para implicitamente
concat
todos os diferentes monômios.fonte
Sábio, 38 bytes
Experimente online
Isso define um lambda sem nome que pega uma iterável de raízes como entrada e calcula o produto
(x-x_n) for x_n in roots
e depois o expande.fonte
Mathematica, 26 bytes
O Mathematica possui poderosos recursos polinomiais.
Uso
fonte
JavaScript (ES6), 96 bytes
fonte