Urutan bilangan bulat n> 0 disebut jolly jumper jika nilai absolut dari perbedaan antara elemen berturut-turut mengambil semua nilai 1 hingga n-1.
Jadi urutan [4,1,2,4] memiliki perbedaan absolut [3,1,2] yang setara dengan himpunan [1,2,3] (1 hingga n-1 di mana n adalah panjang urutan asli) jadi karena itu pelompat riang.
Urutan memiliki panjang n> 0.
Asumsikan n = 1 adalah pelompat riang.
Mode mudah: Jangan khawatir tentang stdin / stdout. Namun, hanya fungsi yang menerima argumen dan mengembalikan sesuatu yang menunjukkan riang atau tidak
Hard mode: Input pada stdin (dipisahkan ruang), dan outputnya "Jolly" / "Not jolly". Huruf besar penting.
Ini golf kode.
EDIT: Urutan dapat berisi bilangan bulat negatif dan input pada stdin dipisahkan oleh ruang.
$ jolly 2 -1 0 2
Jolly
$ jolly 19 22 24 25
Jolly
$ jolly 19 22 24 21
Not jolly
Jawaban:
Haskell
Mudah 4 karakter
Mengembalikan daftar integer riang jika dan hanya jika daftar integer riang diberikan sebagai input. Ini legal berdasarkan pada "Hanya fungsi yang menerima argumen namun mengembalikan sesuatu yang menunjukkan riang atau tidak".
Solusi mudah alternatif dengan 61 karakter:
Mengambil daftar dan mengembalikan daftar kosong jika urutannya riang.
sumber
[1,3]
bukan riang, kan? Saya kira Anda harus mengulanginyalength n-1
sebagai gantinya.Ruby,
9293 karakterVersi sulit dengan input pada STDIN.
Jika Anda memulainya dengan
-pa
(dihitung sebagai 4), Anda dapat menyimpan 5 karakter:sumber
-pa
.Jawa (Keras)
Asumsikan bahwa input diberikan melalui stdin. (tidak melalui argumen baris perintah seperti contoh)
Golf - 325
Tidak Golf
sumber
Scala, mode mudah, 123 karakter
Untuk menjalankan atau menguji di ideone.com:
sumber
Skrip golf, mode mudah,
2118 karakterMenerima argumen sebagai array int pada stack, dengan tidak ada yang lain pada stack; meninggalkan 1 pada tumpukan jika itu riang dan 0 sebaliknya. Untuk mengambil input pada stdin sebagai daftar int yang dipisahkan ruang, tambahkan dulu
dan untuk menampilkan "Jolly" / "Tidak riang" (dengan asumsi bahwa kita mengubah ini menjadi sebuah program) postpend
sumber
[4 1 2 4]
, tidak4 1 2 4
).J (mudah), 18
J (keras), 68
sumber
Brachylog , 11 byte (mudah)
Cobalah online!
s₂ᶠ-ᵐ
- Perbedaan berurutanȧᵐ
- Nilai absoluto
- Sortir~⟦₁
- Apakah hasilnya kisaran 1 ke sesuatu?sumber
J, 30
26mode mudah, mode 8176hardsunting: menangani daftar yang lebih pendek dari 3, perbaiki stdin membaca
Baris pertama menangani mode mudah, kedua menambahkan mode keras.
J umumnya berbunyi kanan-ke-kiri:
2-/\
: untuk setiap dua nomor berurutan dalam daftar, ambil perbedaannya|
: nilai mutlak/:~
: urutkan dalam urutan menaik>:@i.@#
: 1 hingga n , untuk daftar n angka=
: bandingkan perbedaan yang diurutkan dengan urutan (menggunakan J "garpu")*/
: kalikan semua boolean elemen-bijaksana; jika semua perbandingan adalah 1, produk mereka adalah 1, jadi itu periangsumber
1 3
.Ruby, 97
102106(sulit)Mungkin juga, karena semua orang adalah:
Masukan diambil pada stdin.
sumber
(1..d.size).to_a
dengan[*1..d.size]
. Switching operan sekarang mungkin, simpan yang lain (total -5 karakter).D
mudah (
10383 karakter)mengembalikan jumlah 1..i.panjang pada Jolly beberapa nomor lain jika tidak (sedikit aturan laywering di sini)
hard (142 chars)
input dibatasi oleh spasi dan berakhir pada EOF
sumber
Asyik
Mudah: 78
Keras: 151
sumber
PowerShell, keras, 117
126Sejarah:
$null
menjadi variabel yang tidak adasumber
Scala
Tusukan cepat - mungkin ada perbaikan yang mungkin dilakukan.
Mudah: 77
Keras: 124
sumber
Q, 64 (sulit), 30 (mudah)
keras
mudah
sumber
J (mudah), 19 karakter
Pemakaian:
Berbeda dengan jawaban DCharness , dan saya hanya akan menambahkannya sebagai komentar tetapi karena dia belum pernah berkunjung sejak tanggal 23 Februari.
2-/\
mengambil perbedaan antara pasangan angka yang berurutan,|
mendapatkan nilai absolut dari setiap angka,/:~
mengurutkan dalam urutan menaik,<:
mengurangi setiap angka dengan 1,(=i.@#)
sebuah kait J yang menghasilkan urutan angka 0 dengan panjang daftar perbedaan - 1 (i.@#
) dan membandingkannya dengan daftar yang=
.*/
mengalikan daftar1
s dan0
s yang dihasilkan oleh kata kerja sebelumnya.sumber
x-:y
bukannya*/x=y
menyimpan karakter.Scala mudah: 138
153, 170(keliru, diperbaiki nanti)ungolfed:
Idenya adalah, kita membangun derivasi kedua:
Scala hard 172
182, 205(salah / ditingkatkan):kurang lebih sama dengan di atas.
sumber
4 1 2 5
mengembalikan true. Masih belum berhasil mendapatkan kepalaku di sekitar lipatan kiri ...readLine
mengambil input dari konsol, bukan stdin ... (tetapi Anda dapat menggunakannyaargs
sebagai gantinya)j("1")
melemparUnsupportedOperationException: empty.max
PHP, mudah, 129
Untuk array
$s
bilangan bulat yang diberikan :Versi ungolfed:
sumber
Jelly ,
76 byte (mudah)Cobalah online!
Mengambil input sebagai angka yang dipisahkan koma dalam argumen pertama. Mengembalikan 1 jika urutannya riang, dan 0 jika tidak!
Solusi 7-byte:
Cobalah online!
Mengambil input sebagai angka yang dipisahkan koma dalam argumen pertama. Tidak menghasilkan apa-apa jika daftar adalah urutan jolly jumper, dan sesuatu jika tidak.
Menambahkan baris ini membuatnya bekerja dengan spesifikasi keras:
Jelly ,
2722 byte (sulit, umpan balik selamat datang!)Cobalah online!
Solusi 27-byte (keras):
Cobalah online!
Menghidupkan nomor yang dipisahkan ruang
stdin
, dan menampilkan "Jolly" atau "Not jolly".Penjelasan:
Umpan balik sangat dihargai!
sumber
LR
adalahJ
. Jika Anda menulis sesuatu sepertiIAṢ⁼J$
Anda mendapatkan hasil 1/0 yang bagus, dan Anda dapat menggunakannya untuk mengindeks ke“Not jolly“Jolly”
:ɠḲVIAṢ⁼J$ị“¢⁼D“¡KṀȥƘạ»
⁼
atom, berguna untuk membandingkan hanya bagian dari daftar.Haskell ,
5957 byteMode mudah, mengembalikan keceriaan sebagai boolean. Terima kasih kepada @Laikoni untuk dua byte.
Cobalah online!
sumber
Japt ,
3230 byte Hard-2 Bytes dari @Shaggy
Cobalah online!
sumber
Python 3, 117 (sulit)
Cobalah online!
sumber
JavaScript: 105 (mode mudah)
Golf:
Tidak golf:
sumber
Perl, 89 (sulit)
Kode 86 karakter + 3 untuk berjalan dengan
-p
opsisumber
Javascript (sulit): 138
sumber
sumber
R, Mudah, 110
Pemakaian:
sumber
Python, 72 (mudah), 114 (sulit)
Mudah:
Sulit :
sumber
Python, 255 karakter
sumber
C, 119 (sulit), 97 (mudah)
Solusi mudah membaca input dari argumen dan mengembalikan 0 sebagai kode keluar jika inputnya adalah urutan jolly jumper:
sumber
APL (
504947, sulit)Mudah (24):
Fungsi ini mengambil array dan mengembalikan 0 atau 1.
sumber