Pikirkan jalan sebagai garis bilangan, mulai dari 0
dan berlanjut tanpa batas:
.................................................................
Ada dua mobil di jalan: C
dan R
. C
adalah polisi yang berusaha menangkap R
, perampok. C
dimulai pada 0
, dan R
mulai di suatu tempat di jalan:
C.............................R..................................
Polisi sudah bergerak - dia mengejar perampok. Ia memiliki kecepatan konstan. Perampok itu baru saja melompat ke mobilnya. Dia mempercepat. Setiap centang, kecepatan perampok meningkat dengan akselerasinya.
Katakanlah kecepatan polisi 7
dan akselerasi perampok 1
. Jika perampok mulai 30
, inilah jalan yang akan terlihat seperti setiap centang:
C.............................R..................................
.......C.......................R.................................
..............C..................R...............................
.....................C..............R............................
............................C...........R........................
...................................C.........R...................
..........................................C........R.............
.................................................C........R......
Setelah kutu terakhir di atas, kecepatan perampok sama dengan polisi, dan dia masih di depan. Karena polisi bergerak dengan kecepatan konstan dan perampok masih melaju, perampok melarikan diri, sehingga Anda menghasilkan nilai yang benar. Namun, jika kecepatan polisi telah 9
...
C.............................R..................................
.........C.....................R.................................
..................C..............R...............................
...........................C........R............................
....................................C...R........................
.............................................X...................
... lalu polisi menangkap perampok sebelum perampok dapat pergi (ditandai oleh X
), sehingga Anda menghasilkan nilai falsey.
Tugas Anda
Diberikan tiga input - kecepatan polisi, posisi perampok, dan percepatan perampok - menentukan apakah perampok akan pergi atau tidak.
Aturan
- Polisi selalu mulai
0
. - Semua input akan menjadi bilangan bulat positif.
- Polisi menangkap perampok jika, setelah kutu apa pun, posisi polisi lebih besar atau sama dengan posisi perampok.
- Perampok itu melarikan diri ketika dia belum ditangkap dan kecepatannya lebih besar dari polisi.
- Program Anda harus berakhir setelah output.
- Perampok berakselerasi sebelum dia menggerakkan setiap centang.
Uji Kasus
Cop Speed, Robber Position, Robber Acceleration -> Output
7, 30, 1 -> truthy
9, 30, 1 -> falsey
2, 1, 3 -> truthy
100, 100, 50 -> truthy
60, 60, 20 -> falsey
10, 1, 1 -> falsey
10, 50, 2 -> truthy
11, 50, 2 -> truthy
12, 50, 2 -> truthy
13, 50, 2 -> truthy
14, 50, 2 -> truthy
15, 50, 2 -> truthy
16, 50, 2 -> falsey
17, 50, 2 -> falsey
18, 50, 2 -> falsey
100, 451, 10 -> truthy
Referensi implementasi Python 3 yang menciptakan visual juga: Coba online!
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
sumber
robber acceleration, cop speed, robber position
sebaliknya)?Jawaban:
Jelly , 9 byte
Cobalah online!
Port of Leaky Nun's Python 3 menjawab.
(program lengkap) Membawa argumen secara berurutan
acceleration, position, speed
.sumber
Python 3 , 29 byte
Cobalah online!
Penjelasan
Posisi polisi saat itu
t
adalahst
.Posisi perampok pada saat itu
t
adalaha(t)(t+1)/2 + p
.Jarak yang ditandatangani dari polisi ke perampok adalah
(a/2)t^2 + (a/2-s)t + p
.Tidak pernah mencapai nol jika diskriminan negatif, makhluk diskriminan
(a/2 - s)^2 - 4(a/2)(p) = [(a-2s)^2-8ap]/4
, yang memiliki tanda sama dengan(a-2s)^2-8ap
.sumber
(a/2)t^2 + (a/2-s)t + p = 0 -> 10t^2 - 50t + 61 = 0
? Sebagai contoh, untuk 60, 61, 20 perampok dengan mudah lolos (solusi persamaan: 2.1 dan 2.9 keduanya antara 2 dan 3).Japt , 13 byte
Uji secara online!
Penjelasan
U
,,V
danW
merupakan input implisit. Pertama, denganUo0W
kita membuat kisaran [0, W, 2 * W, ...] hingga mencapaiU
.x
kemudian menjumlahkan ini, yang memberikan seberapa jauh perjalanan perampok sebelum mencapai kecepatan polisi. Kami akan menyebutnya r .Sekarang, sejauh apa perjalanan polisi saat ini? Kita dapat menghitung ini menggunakan U * (U // W - 1) , yang dapat disusun kembali ke (U * U) // W - U . Kami akan menyebutnya c .
Sekarang untuk langkah terakhir: apakah perampok itu pergi? Yang perlu kita lakukan di sini adalah memeriksa apakah c <r + V , atau disusun ulang, c - V <r .
sumber
Secara kubik , 61 byte
Cobalah online! Agar ini berfungsi di TIO, Anda mungkin perlu mengganti
&
dengan&1
karena bug pada juru bahasa.Ini adalah pelabuhan jawaban Leaky Nun yang tak tahu malu . Input dalam bentuk
a s p
, di manaa
akselerasi perampok,s
adalah kecepatan polisi, danp
posisi perampok.Jika akselerasi terlalu tinggi, ini akan gagal. Saya tidak tahu seberapa tinggi akselerasi yang akan didukung oleh program ini, tetapi saya tahu itu tidak lebih tinggi dari 1260 . Faktor pembatas adalah bahwa ia menyimpan akselerasi dalam kubus dan memeriksa apakah kubus diselesaikan dengan memeriksa hanya jika jumlah permukaan atas adalah 0 (cek tidak lengkap). Tampaknya bekerja untuk akselerasi = 50, tapi saya belum menguji untuk melihat seberapa tinggi itu bisa didapat.
Bagaimana itu bekerja
sumber
6
dalam%6
dan*6
dapat dihapus karena mereka sekarang bisa disebut secara implisit.Pyth , 11 byte
Ini mengambil mereka dalam urutan ini:
Robber Acceleration, Cop Speed, Robber Position
dipisahkan oleh baris baru (seperti yang ditunjukkan dalam paket uji).Test Suite atau Coba online!
sumber
Pyke , 14 byte
Port jawaban Python yang benar-benar manusiawi . Pengembalian
1
untuk kebenaran dan0
kepalsuan.Coba di sini!
Penjelasan
Pyke , 15 byte
Jawaban Pyke pertamaku! Solusi Port of Pyth saya , yang terinspirasi oleh pengiriman Python Leaky . Pengembalian
1
untuk kebenaran dan0
kepalsuan.Coba di sini!
Penjelasan
sumber
Python 2 , 62 byte
Cobalah online!
sumber
Ruby ,
292725 byteCobalah online!
Dapatkan dari 29 hingga 27 dengan mencuri ide mengalikan kedua belah pihak dengan 4. (jawaban python Leaky Nun)
Dapatkan dari 27 hingga 25 dengan menghapus parens di sekitar parameter lambda (terima kasih sepenuhnya manusia)
sumber
hit
keh
atau serupa. Anda juga dapat menyimpan beberapa byte dengan mengubah dari metode ke proc, seperti:->c,p,a{(c-a*0.5)**2<2*p*a}
collision
tautan TIO Anda dengan nama metode yang benar.c,p,a
.C # (.NET Core) , 33 byte
Cobalah online!
Saya merasa ini tidak aktif oleh satu orang di suatu tempat, tetapi ini berlaku untuk semua kasus uji sehingga mungkin saja tidak ada kasus uji di mana polisi menyalip perampok untuk satu tik, atau mungkin hanya bekerja meskipun ada reservasi saya.
sumber
Python 2 ,
313029 byte-1 byte terima kasih kepada Tn. Xcoder.
Dimulai sebagai port jawaban Ruby .
Cobalah online!
sumber
.5
bukannya0.5
> _>a/2
menggunakan pembagian integer, bisakah ini salah?Swift 3 , 55 byte
Perhatikan bahwa saya mendeklarasikan variabel
t
karena ekspresi akan terlalu rumit untuk dipecahkan dalam waktu yang wajar jika tidak (kesalahan Swift!).Test Suite.
atau 55 byte , ekuivalen penutupan persis (saya perlu bagian terakhir karena ini adalah konstruksi yang kompleks):
Test Suite.
Swift 3 , 57 byte
Test Suite.
sumber
Python 2 , 30 byte
Cobalah online! Polisi memiliki
c/a
kutu untuk menangkap perampok, setelah itu mempercepat polisi. Pada centang pertama, polisi mendapatkanc-a
perampok sementara pada centang terakhir ia hanya mendapatkanc%a
. Dengan demikian total yang bisa diperoleh polisi adalah produk dari jumlah kutu dan jarak rata-rata per kutu. Ini hanya dibandingkan dengan petunjuk awal yang dimiliki oleh perampok.sumber
TI BASIC (seri TI-83/84), 18 byte
Namun port lain dari solusi Ruby berpengaruh itdoesntwork .
Eksekusi
Urutan input adalah kecepatan polisi, posisi perampok, akselerasi perampok.
sumber
Retina , 79 byte
Cobalah online! Penjelasan:
Konversikan input ke unary.
Berikan ruang untuk kecepatan perampok.
Percepat perampok di setiap kartu.
Jauhkan perampok dari polisi.
Pindahkan polisi ke arah perampok.
Apakah polisi menangkap perampok?
Apakah perampok itu mempercepat polisi?
sumber
Recursiva ,
1916 byteCobalah online!
sumber