Dengan persamaan polinomial dan koordinat x, temukan laju perubahan titik pada koordinat x tersebut pada kurva.
Polinomial adalah dalam bentuk: kapak n + kapak n-1 + ... + kapak 1 + a, di mana a ϵ Q dan n ϵ W. Untuk tantangan ini, n juga bisa 0 jika Anda tidak ingin memiliki untuk menangani kasus khusus (konstanta) di mana tidak ada x.
Untuk menemukan laju perubahan pada x-coord itu, kita bisa mendapatkan turunan dari polinomial dan menyambungkan x-coord.
Memasukkan
Polinomial dapat diambil dalam bentuk apa pun yang wajar, tetapi Anda harus menyatakan apa format itu secara eksplisit. Misalnya, array formulir[..[coefficient, exponent]..]
dapat diterima.
Keluaran
Tingkat perubahan titik pada koordinat x yang diberikan.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
Contohnya
[[4, 3], [-2, 4], [5, 10]] 19 -> 16134384838410
[[0, 4]] 400 -> 0
[[4, 0], [5,1]] -13 -> 5
[[4.14, 4], [48, 2]] -3 -> -735.12
[[1, 3], [-5, 0]] 5.4 -> 87.48
Jawaban:
Mathematica, 6 byte
(Kalahkan ITU ,
MATLdan 05AB1E)Argumen pertama harus polinomial, dengan
#
sebagai variabelnya dan dengan&
di akhir (yaitu polinomial fungsi murni; misalnya3 #^2 + # - 7 &
). Argumen kedua adalah koordinat x dari tempat tujuan.Penjelasan
Ambil turunan dari argumen pertama (
1
tersirat).Masukkan argumen kedua.
Pemakaian
sumber
MATL ,
86 byteInput adalah: array eksponen, jumlah, array koefisien.
Cobalah online! Atau verifikasi semua kasus uji: 1 , 2 3 , 4 , 5 .
Penjelasan
Perhatikan contoh input
[3 4 10]
,19
,[4 -2 5]
.sumber
Julia,
45424037 byteIni adalah fungsi yang menerima vektor tupel dan angka dan mengembalikan angka. Nilai absolut adalah untuk memastikan bahwa eksponen tidak negatif, yang diperlukan karena Julia menjengkelkan
DomainError
ketika menaikkan bilangan bulat ke eksponen negatif.Cobalah online! (termasuk semua kasus uji)
Terima kasih kepada Glen O untuk beberapa koreksi dan byte.
sumber
i[2]>0&&
untuk menangani kasus konstan, Anda menggunakanabs(i[2]-1)
eksponenx
. Dan trik yang sedikit kurang bersih untuk menyimpan tiga byte lainnya adalah dengan menggunakanp%x
alih-alihf(p,x)
- perhatikan bahwa Anda dapat menyebutnya seolah-%(p,x)
olah Anda ingin menggunakannya dalam bentuk fungsi ... sayangnya, sepertinya itu tidak berfungsi pada TIO (yang tampaknya menjalankan Julia 0.4.6), meskipun bekerja pada Julia 0.5.0 saya.abs
bagian itu, tetapi mendefinisikan ulang operator infiks secara fisik membuat saya sedih ...05AB1E ,
1211 byteDisimpan satu byte berkat Adnan.
Cobalah online!
Presisi titik apung adalah Python. Saat ini saya menukar nilai tumpukan dua kali, mungkin ada cara untuk menghindarinya dan menyimpan beberapa byte.
sumber
}
:).DIs<m**O
adalah 8 byte, mengikuti jawaban MATL yang disediakan @Luis Mendo.s¹<m**O
adalah 7 byte. ( 05ab1e.tryitonline.net/... )Python 3, 41 byte
6 byte dihapus berkat @AndrasDeak ! Bahkan, jawaban ini sekarang lebih dari milikku ...
Terima kasih juga kepada @ 1Darco1 untuk dua koreksi!
Fungsi anonim yang menerima daftar daftar dengan koefisien dan eksponen (format yang sama seperti yang dijelaskan dalam tantangan) dan angka.
Coba di sini .
sumber
a*x**(b-1)
alih-aliha*b*x**(b-1)
? Dan selanjutnya, bagaimana jika $ x = 0 $?R, 31 byte
Fungsi anonim yang mengambil vektor koefisien
a
, vektor eksponenn
, danx
nilai.sumber
Matlab, 27 byte
Ini adalah fungsi anonim yang menerima nilai
x
dan polonmialp
dalam bentuk daftar koefisien, misalnyax^2 + 2
dapat direpresentasikan sebagai[1,0,2]
.sumber
JavaScript (ES7), 40 byte
a
adalah array dari koefisien dalam urutan eksponen naik dengan nol termasuk misalnya x ³-5 akan diwakili oleh[-5, 0, 0, 1]
.sumber
MATLAB dengan Symbolic Math Toolbox, 26 byte
Ini mendefinisikan fungsi anonim. Inputnya adalah:
p
defining the polynomial, in the format'4*x^3-2*x^4+5*x^10'
x
Contoh penggunaan:
sumber
@(x,p)polyval(polyder(p),x)
untuk mendapatkan byte.R,
3127 byteFungsi yang tidak disebutkan namanya mengambil dua input
p
danx
.p
diasumsikan sebagai ekspresi-R dari polinomial (lihat contoh di bawah) danx
hanyalah titik evaluasi.Ia bekerja dengan memanggil
D
mana yang menghitung WRT derivatif simbolisx
dan mengevaluasi ekspresi dix
.Contoh output
Dengan asumsi bahwa fungsi tersebut sekarang dinamai
f
dapat dipanggil dengan cara berikut:yang masing-masing menghasilkan:
sumber
PARI / GP , 20 byte
Misalnya,
a(4*x^3-2*x^4+5*x^10,19)
hasil16134384838410
.sumber
f'
off
, and then substitutesn
forx
.C++14,
165138133112110 bytesGeneric Variadic Lambda saves a lot. -2 bytes for
#import
and deleting the space before<
Ungolfed:
Usage:
sumber
Haskell, 33 byte
Pemakaian:
sumber
dc, 31 byte
Pemakaian:
sumber
DASH , 33 byte
Pemakaian:
Penjelasan
sumber
Scala, 46 byte
Pemakaian:
Penjelasan:
sumber
Aksioma 31 byte
hasil
sumber
Python 2, 39 byte
lambda
fungsi mengambil dua input,p
danx
.p
adalah polinomial, diberikan dalam format contoh yang diberikan dalam pertanyaan.x
adalah nilai x untuk menemukan tingkat perubahan.sumber
Pari / GP , 14 byte
Pemakaian:
Cobalah online!
sumber
C, 78 byte
sumber
Clojure, 53 byte
Polinomial dinyatakan sebagai peta hash, kunci menjadi koefisien dan nilai adalah eksponen.
sumber
Casio Basic, 16 byte
Masukan harus polinomial dalam hal
x
. 13 byte untuk kode, +3 byte untuk dimasukkana,b
sebagai parameter.Turunkan ekspresi
a
sehubungan denganx
, lalu masukx=b
.sumber
Dyalog APL,
262523 bytesMengambil polinomial sebagai argumen kanan dan nilai sebagai argumen kiri.
sumber