我有一个有4个字符串的ruby数组
nucleotides = ['A', 'G', 'C', 'T']
我需要4^3个字符串组合。
new_array = ['AGC', 'AGT' .. 'TTT']
这是遗传学中的摆动假说。有人能解释一下我如何使用ruby来实现这个目标吗?
最佳答案
nucleotides = ['A', 'G', 'C', 'T']
(nucleotides*3).permutation(3).to_a.map(&:join).uniq
#=> ["AGC", "AGT", "AGA", "AGG", "ACG", "ACT", "ACA", "ACC", "ATG", "ATC", "ATA", "ATT", "AAG", "AAC", "AAT", "AAA", "GAC", "GAT", "GAA", "GAG", "GCA", "GCT", "GCG", "GCC", "GTA", "GTC", "GTG", "GTT", "GGA", "GGC", "GGT", "GGG", "CAG", "CAT", "CAA", "CAC", "CGA", "CGT", "CGG", "CGC", "CTA", "CTG", "CTC", "CTT", "CCA", "CCG", "CCT", "CCC", "TAG", "TAC", "TAA", "TAT", "TGA", "TGC", "TGG", "TGT", "TCA", "TCG", "TCC", "TCT", "TTA", "TTG", "TTC", "TTT"]