Giriş
İnsanlar dikkate değer bir türdür, ancak bazen bilgisayarları anlamak bazen çok garip olabilir. Özellikle, polinomları görünüşte keyfi kurallarla çok karmaşık bir şekilde yazmaktan hoşlanıyoruz.
Bir polinomu bu kuralları kullanarak doğru bir şekilde formatlamak için yazabileceğiniz en kısa program nedir?
Meydan okuma
Giriş
Bir polinomun katsayılarını temsil eden -1000 ila 1000 (dahil) arasında bir tamsayı listesi, son giriş x ^ 0 (sabit) katsayısı, ikinci son x ^ 1 katsayısı, vb.
Çıktı
Bu polinomu, insanların doğru şekilde biçimlendirilmiş matematiksel gösterimlerinde temsil eden bir dize.
Kurallar:
- Önde gelen katsayı üzerindeki işaret yalnızca negatifse gösterilir.
Right: -x^2+3
Wrong: +x^2+3
- 0 katsayılı bileşenler yazdırılmaz (tüm katsayıların 0 * olduğu köşe durumu hariç).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- Katsayılar
-1
ve+1
sabit olmadıkça 1 olmadan gösterilmelidir.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- Üssü yalnızca 1'den büyükse gösterilir ve değişken yalnızca üs, 0'dan büyükse gösterilir.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Köşe kutusu: sıfır değerler genellikle bu bileşenin yazdırılmamasına neden olurken, tüm katsayılar sıfırsa, 0 sabiti yazdırılmalıdır.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- Bu kod-golf olduğundan kazanan en az baytlık program olacak.
Örnek Giriş ve Çıkış
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
Çözümlerinizi görmeyi dört gözle bekliyorum. İyi eğlenceler!
DÜZENLE:
- İsterseniz işlemleri boşluk ile çevreleyebilirsiniz. Yani
3x+5
ve3x + 5
her ikisi de iyi.3x+ 5
ve3x +5
değil. - İnsanların nasıl yazdıklarına daha yakın olduğu için izin verilen gerçek üstel karakterleri (Tex'de söyleyin) üretmek istiyorsanız.
- Katsayılar herhangi bir ondalık sayı olmadan görünmelidir, örneğin
9x^2
doğru,9.0x^2
öyle değil.
1x
-> x
yedek değişmez 21x^2
içine 2x^2
.
3x^2 + 4
karşı3x^2+4
?