Karena kekurangan uang, Anda telah mendaftar untuk membuat donat untuk The Donut Shop ™, perusahaan donat digital terbesar di dunia, terutama karena mereka menjual setiap ukuran donat yang bisa dibayangkan.
Sekarang, mengingat standar perdagangan saat ini sangat sulit, Anda perlu menulis sepotong kode sesingkat mungkin untuk membuat donat ini sehingga kode sumber yang membuatnya dapat diletakkan di luar paket.
Tantangan
Diberikan 4 input, jari-jari cincin luar, jari-jari cincin bagian dalam, kemungkinan taburan dan kemungkinan sel memiliki taburan, mengeluarkan donat yang tercakup dalam taburan yang memiliki jari-jari dalam dan luar yang benar.
- Input dapat diambil sesuai keinginan Anda (argumen untuk suatu fungsi, stdin, argumen program) dan dalam urutan apa pun.
- Taburan akan diberikan dalam bentuk 1 karakter per jenis taburan
^+*-sebagai masukan taburi akan menjadi daftar dari 4 taburan,^,+,*,-- Kesempatan Taburkan akan dimasukkan sebagai nilai floating point antara 0 dan 1. misalnya:
0.1,0.23
- Anda harus mencetak output ke stdout atau setara.
- Taburan tidak bisa berada di tepi donat.
- Setiap jenis taburan harus memiliki peluang yang sama untuk berada di setiap sel.
- Jari-jari diberikan dalam satuan 1 sel.
- Jika jari-jari dalam sama dengan 0 ATAU jari-jari luar, donat dikatakan tidak memiliki dering.
- Kedua jari-jari akan bilangan bulat non-negatif.
- Tepi dalam dan luar donat harus diwakili menggunakan hashes (
#) Tes untuk melihat apakah suatu titik dalam lingkaran, diberi jari-jari dan pusat lingkaran adalah:
(x-center)**2+(y-center)**2 < radius**2
Contoh input dengan output
(jari-jari luar, jari-jari dalam, taburan, kemungkinan taburan)
10, 4, "^ + * -", 0,1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########5, 2, ": ^ + *", 0,9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
Ini adalah kode golf, jawaban terpendek dalam byte menang
10, 4dan 5, 2sangat berbeda. Saya akan meninggalkan komentar pada jawabannya, tetapi saya menyadari bahwa saya tidak benar-benar mengerti bagaimana output seharusnya terlihat untuk dimensi apa pun kecuali yang ada dalam contoh. Jika Anda ingin mengubah ide orisinal Anda cocok dengan output dari jawaban, itu terserah Anda, tetapi tantangannya harus jelas menentukan cara menggambar perbatasan dengan cara baik.