introduzione
Gli esseri umani sono una specie notevole, ma a volte possiamo essere molto difficili da capire, specialmente per i computer. In particolare, sembra che ci piaccia scrivere polinomi in modo molto contorto con regole apparentemente arbitrarie.
Qual è il programma più breve che puoi scrivere per formattare correttamente un polinomio usando queste regole?
Sfida
Ingresso
Un elenco di numeri interi compresi tra -1000 e 1000 (inclusi), che rappresentano i coefficienti di un polinomio, con l'ultima voce che corrisponde al coefficiente di x ^ 0 (la costante), il secondo ultimo è il coefficiente di x ^ 1, ecc.
Produzione
Una stringa che rappresenta questo polinomio nella notazione matematica correttamente formattata degli umani.
Regole:
- Il segno sul coefficiente iniziale viene visualizzato solo se è negativo.
Right: -x^2+3
Wrong: +x^2+3
- I componenti con coefficiente pari a 0 non vengono stampati (ad eccezione del caso angolare in cui tutti i coefficienti sono 0 *).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- I coefficienti
-1
e+1
devono essere visualizzati senza 1, a meno che non siano la costante.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- L'esponente viene mostrato solo se è maggiore di 1 e la variabile viene mostrata solo se l'esponente è maggiore di 0.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Caso angolare: mentre i valori zero di solito si traducono in non stampare quel componente, se tutti i coefficienti sono zero è necessario stampare lo 0 costante.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- Questo è code-golf, quindi il vincitore sarà il programma con il minor numero di byte.
Esempio di input e output
Input: Output:
[0] 0
[0,0] 0
[0,-1,35,0] -x^2+35x
[5,1,7,-9] 5x^3+x^2+7x-9
[100,0,0,-1] 100x^3-1
[931,21,-11,1] 931x^3+21x^2-11x+1
Non vedo l'ora di vedere le tue soluzioni. Divertiti!
MODIFICARE:
- Se lo desideri, puoi circondare le operazioni per spazi bianchi. Quindi
3x+5
e3x + 5
stanno entrambi bene.3x+ 5
e3x +5
non lo sono. - Se vuoi produrre veri personaggi esponenti (diciamo in Tex) ciò è permesso in quanto è ancora più vicino a come gli umani scrivono.
- I coefficienti devono apparire senza decimali, ad esempio
9x^2
è corretto,9.0x^2
non lo è.
1x
-> x
rimpiazzo non si trasformi 21x^2
in 2x^2
.
3x^2 + 4
contro3x^2+4
?