Berdasarkan Chunky vs. Smooth Strings .
Coretan /\_/\/\__/\/\/\/\_/\_/\menyenangkan untuk dibuat di keyboard saat Anda benar-benar bosan. Tapi tidak semua coretan diciptakan sama. Beberapa coretan halus, seperti \___/, dan beberapa chunky, seperti /\/\/\/\. Yang lain benar-benar rusak, seperti////_\\\
Di dalam setiap coretan Nkarakter, ada N-1persimpangan coretan. Setiap persimpangan berlekuk diklasifikasikan menjadi salah satu dari tiga jenis:
Halus (sudut> "90 derajat"):
\_ __ _/Chunky (sudut = "90 derajat")
/\ \/Rusak (apa pun yang tidak terhubung)
// \\ /_ _\
Mari kita mendefinisikan kelancaran menjadi proporsi persimpangan yang mulus, dengan chunkiness dan kehancuran didefinisikan dengan cara yang sama. Setiap nilai berkisar antara 0dan 1. Jumlah kehalusan, kekasaran, dan kehancuran dari coretan selalu sama dengan 1.
Misalnya, coretan /\/\\_//\_memiliki 3 persimpangan halus, 4 persimpangan tebal, dan 2 persimpangan rusak. Dengan demikian 0.3333halus, 0.4444tebal, dan 0.2222pecah.
String kosong dan string dengan hanya satu karakter memiliki nilai yang tidak ditentukan, semua input akan memiliki minimal 2 karakter.
Tantangan
Tulislah sebuah program yang melibatkan pertengkaran yang panjangnya sewenang-wenang dan hasilkan dua nilai kelancaran, kekenyalan, dan kehancurannya.
- Anda dapat menulis program atau fungsi, dengan input melalui STDIN, baris perintah, atau sebagai argumen string.
- Anda dapat mengasumsikan input paling tidak panjang> = 2 dan hanya terdiri dari karakter
/\_dengan baris tambahan opsional. - Cetak (atau kembali jika suatu fungsi) keduanya mengapung dengan ketepatan minimal 4 desimal, bulat atau terpotong. Jika nilai sebenarnya adalah
2/3, nilai yang dapat diterima mencakup nilai apa pun antara0.6666dan0.6667, bahkan hal-hal seperti0.666637104. Jika nilai pastinya adalah1/3, jawaban apa pun yang berisi0.3333valid. Anda dapat meninggalkan nol di belakang, atau nol di depan jika nilainya kurang dari satu. - Keluarkan pasangan dari ketiga nilai yang Anda inginkan, pastikan untuk menyatakan yang mana dua dan dalam urutan apa.
Kode terpendek dalam byte menang.
Contohnya
/\/\\/\//\\→ Kelancaran 0, Kekurangan 0.7, Kerusakan0.3
_/\\_/\\/__/\\\//_→ Kelancaran 0.29411764705, Kekurangan 0.29411764705, Kerusakan0.41176470588
//\\__/_\/→ Kelancaran 0.3333333, Kekurangan 0.2222222, Kerusakan0.4444444
Pertanyaan bonus: Mana yang Anda sukai, coretan halus atau tebal atau patah?