Tujuan dari Rosetta Stone Challenge adalah menulis solusi dalam bahasa sebanyak mungkin. Pamerkan multibahasa Anda dalam pemrograman!
Tantangan
Tantangan Anda adalah mengimplementasikan program yang akan memetakan beberapa gen menggunakan frekuensi cross-over, dalam sebanyak mungkin bahasa pemrograman . Anda diperbolehkan menggunakan segala jenis fungsi perpustakaan standar yang dimiliki bahasa Anda, karena ini sebagian besar adalah karya bahasa.
Apa itu "pemetaan gen?"
Pemetaan gen adalah proses menemukan posisi relatif gen pada kromosom. Ini dilakukan dengan mengukur frekuensi penyilangan pasangan gen, sama dengan persentase keturunan di mana pasangan tidak diwariskan bersama. Jarak diukur dalam unit peta dengan satu unit peta yang sama dengan satu persen persimpangan. Sebagai contoh, jika gen C & D memiliki frekuensi cross-over 11%, maka gen C adalah jarak 11 unit peta dari gen D.
Pemetaan gen dilakukan dengan beberapa pasang gen untuk menentukan urutan relatifnya. Misalnya, data (A,B,12) (D,B,7) (A,D,5) (D,H,2) (H,B,9)
menghasilkan peta berikut:
A..H.D......B
Anda mungkin memperhatikan bahwa B......D.H..A
itu juga peta yang valid. Ini benar, karena tidak mungkin untuk membedakan antara cermin yang berlawanan. Program Anda dapat memilih mana yang akan di-output. Meskipun input mungkin tidak mencakup setiap pasangan yang memungkinkan, akan selalu ada informasi yang cukup untuk merekonstruksi seluruh peta (sehingga tidak akan ada lebih dari 2 output yang valid). Selain itu, angka-angkanya akan selalu berhasil (tidak seperti biologi yang sebenarnya), artinya Anda tidak akan memiliki barang seperti itu (A,B,3) (B,C,4) (A,C,13)
.
Memasukkan
Input akan dimulai dengan nomor yang n
diikuti oleh daftar gen (huruf besar). Kemudian akan ada n
kembar tiga data. Setiap set akan terdiri dari sepasang gen dan frekuensi persilangannya (jarak).
3,P,H,I
P,H,3
H,I,1
P,I,4
7,A,B,G,Q,U
B,Q,4
A,B,10
G,U,13
Q,U,10
A,G,9
G,Q,3
A,Q,6
Input tidak didefinisikan secara kaku, karena bahasa yang berbeda mungkin memiliki batasan pada apa yang layak. Misalnya, Anda dapat mengubah pembatas menjadi sesuatu selain koma dan baris baru. Pemformatan input sebagian besar terserah Anda.
Keluaran
Output akan menjadi rendition dari peta gen. Ini akan terdiri dari gen (huruf kapital) yang diberi spasi oleh periode sedemikian rupa sehingga jaraknya digambarkan secara akurat. Berikut adalah output untuk contoh-contoh di atas.
P..HI *or* IH..P
BG..Q.....A...U *or* U...A.....Q..GB
Ini juga bukan persyaratan yang sepenuhnya kaku. Misalnya Anda bisa menggunakan sesuatu selain titik, seperti koma atau spasi.
Kriteria Kemenangan yang Objektif
Adapun kriteria kemenangan yang objektif, ini dia: Setiap bahasa adalah kompetisi terpisah untuk siapa yang dapat menulis entri terpendek, tetapi pemenang keseluruhan adalah orang yang memenangkan sebagian besar sub-kompetisi ini. Ini berarti bahwa seseorang yang menjawab dalam banyak bahasa yang tidak biasa dapat memperoleh keuntungan. Code-golf sebagian besar tiebreak ketika ada lebih dari satu solusi dalam bahasa: orang dengan program terpendek mendapat pujian untuk bahasa itu.
Aturan, Batasan, dan Catatan
Program Anda dapat ditulis dalam bahasa apa pun yang ada sebelum 20 Desember 2013. Saya juga harus bergantung pada komunitas untuk memvalidasi beberapa tanggapan yang ditulis dalam beberapa bahasa yang lebih jarang / esoterik, karena saya tidak mungkin dapat menguji mereka.
Papan Peringkat Saat Ini
Bagian ini akan diperbarui secara berkala untuk menunjukkan jumlah bahasa dan siapa yang memimpin di masing-masing bahasa.
- AutoHotkey (632) - Avi
- dj (579) - rubik
Peringkat Pengguna Saat Ini
- Avi (1): AutoHotkey (632)
- rubik (1): dj (579)
sumber
n
, tetapi terutama batas-batas untuk menyeberang frekuensi (jarak). Bisakah kita menganggap itu akan selalu, katakanlah, kurang dari itu1000
?Jawaban:
AutoHotkey (632)
Kode dapat lebih pendek dengan mengganti nama semua vars menjadi 1 karakter .. Itu harus sekitar 610 karakter.
Uji Kasus
sumber
Python 311
Golf kode pertama saya: D
(Saya tidak yakin dengan penghitungan, saya hanya mempostingnya secara online dalam jumlah karakter)
Gagasan algoritme sangat buruk, tetapi singkat. Coba secara acak semua posisi untuk Simbol sampai mereka memenuhi semua kendala. Input dengan spasi putih misalnya
Tekan setelah itu CTRL + D di konsol untuk mengakhiri pembacaan.
Berikut adalah kode asli yang masih menggunakan ',' sebagai pembatas.
sumber
dg -
717579 byteSatu Python masuk.
Contoh:
sumber
sumber