Rosetta Stone挑战赛的目标是用尽可能多的语言编写解决方案。炫耀您的编程多语言!
挑战
您面临的挑战是实现一种程序,该程序将以尽可能多的编程语言使用交叉频率绘制一些基因。您可以使用您的语言具有的任何标准库函数,因为这主要是语言展示。
什么是“基因映射”?
基因定位是定位基因在染色体上相对位置的过程。这是通过测量基因对的交叉频率来完成的,该频率等于该基因对不一起遗传的后代的百分比。距离以地图单位测量,其中一个地图单位等于交叉的百分之一。例如,如果基因C和D的交叉频率为11%,则基因C与基因D的距离为11个图谱单元。
用多对基因进行基因定位,以确定它们的相对顺序。例如,数据(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
这也不是完全严格的要求。例如,您可以使用句点以外的其他东西,例如逗号或空格。
客观取胜标准
关于客观的获胜标准,这是:关于谁可以写得最短的条目,每种语言都是一个单独的竞赛,但是总的获胜者将是赢得这些子竞赛中最多的人。这意味着以多种不同寻常的语言回答的人可以获得优势。当一种语言中有多个解决方案时,代码高尔夫通常是决胜局:程序最短的人会为该语言赢得赞誉。
规则,限制和注释
您的程序可以用2013年12月20日之前存在的任何语言编写。由于我不太可能进行测试,因此我还必须依靠社区来验证一些使用一些较不常见/深奥的语言编写的回复。他们。
现任排行榜
本节将定期更新以显示语言的数量以及每种语言的领先者。
- 自动热键(632)-Avi
- dj(579)-魔方
当前用户排名
- AVI(1):AutoHotkey(632)
- 魔方(1):dj(579)
n
,但主要是跨越频率(距离)的界限。我们可以假设它总是小于1000
吗?