Sebuah urutan arithmetico-geometris adalah produk elementwise dari urutan aritmatika dan barisan geometri. Sebagai contoh, 1 -4 12 -32
adalah produk dari deret aritmatika 1 2 3 4
dan deret geometri 1 -2 4 -8
. Istilah ke-n dari barisan deret arithmetico-geometric dapat dinyatakan sebagai
untuk beberapa bilangan real , bukan nol nyata , dan integer . Perhatikan bahwa dan tidak harus bilangan bulat.
Misalnya, urutannya 2 11 36 100 256 624 1472 3392
memiliki , , dan .
Memasukkan
Daftar integer dipesan sebagai input dalam format apa pun yang wajar. Karena beberapa definisi urutan geometri memungkinkan dan menentukan , apakah input adalah urutan aritmetico-geometrik tidak akan bergantung pada apakah dibolehkan menjadi 0. Misalnya, tidak akan muncul sebagai input.123 0 0 0 0
Keluaran
Apakah itu urutan arithmetico-geometric. Keluarkan nilai kebenaran / kepalsuan, atau dua nilai konsisten yang berbeda.
Uji kasus
Benar:
1 -4 12 -32
0 0 0
-192 0 432 -1296 2916 -5832 10935 -19683
2 11 36 100 256 624 1472 3392
-4374 729 972 567 270 117 48 19
24601 1337 42
0 -2718
-1 -1 0 4 16
2 4 8 16 32 64
2 3 4 5 6 7
0 2 8 24
Salah:
4 8 15 16 23 42
3 1 4 1
24601 42 1337
0 0 0 1
0 0 1 0 0
1 -1 0 4 16
sumber
\$
untuk menulis hal-hal seperti .1 -1 0 4 16
akan menjadi kasus False yang berguna, karena ia berbagi empat elemen berturut-turut dengan masing-masing kasus Benar1 -1 0 4 -16
dan-1 -1 0 4 16
.Jawaban:
Perl 6 ,
184128135 byteCobalah online!
Menghitung dan dari tiga elemen pertama dan memeriksa apakah urutan yang dihasilkan cocok dengan input. Sayangnya, Rakudo melempar pengecualian ketika membaginya dengan nol, bahkan ketika menggunakan angka floating-point, biaya ~ 9 byte.r d
Menghitung urutan menggunakan .an=r⋅an−1+rn⋅d
Beberapa peningkatan diilhami oleh jawaban JavaScript Arnauld.
Penjelasan
sumber
JavaScript (ES7),
135127 byteCobalah online!
Bagaimana?
Kami menggunakan dua tes pendahuluan untuk menyingkirkan beberapa kasus khusus. Untuk kasus utama, kami mencoba tiga kemungkinan nilai (dan nilai yang sesuai dari , yang dapat dengan mudah dideduksi) dan menguji apakah semua syarat dari urutan input cocok dengan yang diperkirakan. Karena kesalahan pembulatan potensial, kami benar-benar menguji apakah semua perbedaan kuadrat .r d <10−9
Kasus khusus # 1: kurang dari 3 istilah
Jika ada kurang dari 3 istilah, selalu mungkin untuk menemukan urutan yang cocok. Jadi kami memaksakan nilai kebenaran.
Kasus khusus # 2: hanya nol
Jika semua istilah sama dengan , kita bisa menggunakan , dan . Jadi kami memaksakan nilai kebenaran.0 a0=0 d=0 r≠0
Kasus utama dengana0=0
Jika , urutannya dapat disederhanakan menjadi:a0=0
Pemberian yang mana:
Kita tahu bahwa tidak sama dengan (jika tidak, kita akan berada dalam kasus khusus # 2). Jadi kita punya dan:d 0 a1≠0
utama dengana0≠0
Kami memiliki hubungan berikut antara dan :an+1 an
Untuk , kami memiliki:an+2
Kami terutama memiliki:
Menuju kuadrat berikut:
Akar siapa adalah:
sumber
Bahasa Wolfram (Mathematica) , 55 byte
Cobalah online!
Solve
kembalikan semua bentuk solusi. Hasilnya dibandingkan dengan{}
untuk memeriksa apakah ada solusi.sumber