เป้าหมายของการท้าทาย Rosetta Stone คือการเขียนวิธีแก้ปัญหาในภาษาต่างๆให้ได้มากที่สุด แสดงการเขียนโปรแกรมได้หลายภาษาของคุณ!
ความท้าทาย
ความท้าทายของคุณคือการใช้โปรแกรมที่จะทำแผนที่ยีนโดยใช้ความถี่ข้ามมากกว่าที่เป็นหลายภาษาการเขียนโปรแกรมที่เป็นไปได้ คุณได้รับอนุญาตให้ใช้ฟังก์ชั่นไลบรารีมาตรฐานทุกประเภทที่ภาษาของคุณมีเนื่องจากนี่เป็นการนำเสนอภาษาเป็นส่วนใหญ่
"การแม็ปยีนคืออะไร"
การทำแผนที่ยีนเป็นกระบวนการของการค้นหาตำแหน่งสัมพัทธ์ของยีนในโครโมโซม สิ่งนี้ทำได้โดยการวัดความถี่การข้ามผ่านของคู่ของยีนเท่ากับร้อยละของลูกหลานที่คู่นั้นไม่ได้รับการถ่ายทอดร่วมกัน ระยะทางวัดในหน่วยแผนที่โดยมีหนึ่งหน่วยแผนที่เท่ากับหนึ่งเปอร์เซ็นต์ของการข้ามผ่าน ตัวอย่างเช่นหากยีน C & D มีความถี่ข้าม 11% แล้วยีน C คือระยะทาง 11 หน่วยแผนที่อยู่ห่างจากยีน D
การทำแผนที่ยีนจะดำเนินการกับยีนหลายคู่เพื่อกำหนดลำดับญาติของพวกเขา ตัวอย่างเช่นข้อมูล(A,B,12) (D,B,7) (A,D,5) (D,H,2) (H,B,9)
สร้างแผนที่ต่อไปนี้:
A..H.D......B
คุณอาจสังเกตเห็นว่าB......D.H..A
เป็นแผนที่ที่ถูกต้อง นี่เป็นเรื่องจริงเพราะไม่สามารถแยกแยะความแตกต่างระหว่างกระจกเงา โปรแกรมของคุณสามารถเลือกได้ว่าจะเอาท์พุทใด แม้ว่าอินพุตอาจไม่รวมทุกคู่ที่เป็นไปได้ แต่จะมีข้อมูลเพียงพอที่จะสร้างแผนที่ใหม่ทั้งหมด (ดังนั้นจะไม่มีเอาต์พุตที่ถูกต้องมากกว่า 2) นอกจากนี้ตัวเลขที่มักจะทำงานออก (ไม่เหมือนชีววิทยาจริง) (A,B,3) (B,C,4) (A,C,13)
หมายความว่าคุณจะไม่ได้สิ่งที่ต้องการ
อินพุต
อินพุตจะเริ่มต้นด้วยตัวเลขn
ตามด้วยรายการของยีน (ตัวอักษรตัวพิมพ์ใหญ่) จากนั้นจะมีn
ข้อมูลสามส่วน แต่ละชุดจะประกอบด้วยยีนหนึ่งคู่และการข้ามผ่านความถี่ (ระยะทาง)
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
การป้อนข้อมูลไม่ได้ถูกกำหนดอย่างเข้มงวดเนื่องจากภาษาต่าง ๆ อาจมีข้อ จำกัด เกี่ยวกับสิ่งที่เป็นไปได้ ตัวอย่างเช่นคุณอาจเปลี่ยนตัวคั่นเป็นสิ่งอื่นที่ไม่ใช่เครื่องหมายจุลภาคและบรรทัดใหม่ การจัดรูปแบบอินพุตขึ้นอยู่กับคุณเป็นส่วนใหญ่
เอาท์พุต
เอาท์พุทจะเป็นการกระทำของแผนที่ยีน มันจะประกอบไปด้วยยีน (ตัวพิมพ์ใหญ่) ที่เว้นระยะตามระยะเวลาเช่นการแสดงระยะทางอย่างแม่นยำ นี่คือผลลัพธ์สำหรับตัวอย่างข้างต้น
P..HI *or* IH..P
BG..Q.....A...U *or* U...A.....Q..GB
สิ่งนี้ยังไม่ใช่ข้อกำหนดที่เข้มงวดอย่างสมบูรณ์ ตัวอย่างเช่นคุณสามารถใช้สิ่งอื่นนอกเหนือจากช่วงเวลาเช่นเครื่องหมายจุลภาคหรือช่องว่าง
เกณฑ์การชนะอย่างมีวัตถุประสงค์
สำหรับเกณฑ์การชนะอย่างมีวัตถุประสงค์นี่คือ: แต่ละภาษาเป็นการแข่งขันแยกกันว่าใครสามารถเขียนผลงานที่สั้นที่สุด แต่ผู้ชนะโดยรวมจะเป็นคนที่ชนะการแข่งขันย่อยมากที่สุดเหล่านี้ ซึ่งหมายความว่าบุคคลที่ตอบคำถามในภาษาแปลก ๆ หลาย ๆ แห่งจะได้รับการพิจารณาเป็นพิเศษ Code-golf ส่วนใหญ่เป็น tiebreaker เมื่อมีวิธีแก้ปัญหามากกว่าหนึ่งภาษา: บุคคลที่มีโปรแกรมสั้นที่สุดจะได้รับเครดิตสำหรับภาษานั้น
กฎข้อ จำกัด และหมายเหตุ
โปรแกรมของคุณสามารถเขียนในภาษาใด ๆ ที่มีอยู่ก่อนวันที่ 20 ธันวาคม 2013 ฉันจะต้องพึ่งพาชุมชนเพื่อตรวจสอบคำตอบบางอย่างที่เขียนในภาษาที่แปลกประหลาด / ลึกลับมากกว่าเนื่องจากฉันไม่สามารถทดสอบได้ พวกเขา
กระดานแต้มนำปัจจุบัน
ส่วนนี้จะได้รับการปรับปรุงเป็นระยะเพื่อแสดงจำนวนภาษาและผู้ที่เป็นผู้นำในแต่ละภาษา
- AutoHotkey (632) - Avi
- dj (579) - รูบิค
อันดับผู้ใช้ปัจจุบัน
- Avi (1): AutoHotkey (632)
- rubik (1): dj (579)
n
แต่โดยหลักแล้วขอบเขตสำหรับการข้ามผ่านความถี่ (ระยะทาง) เราสามารถสรุปได้ว่ามันจะถูกพูดน้อยกว่า1000
?