加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 生成(不是这样)具有特定字符串出现的随机字符串

发布时间:2020-12-16 09:57:39 所属栏目:百科 来源:网络整理
导读:我有一个要求,我有字母“ACGT”,我需要创建一个约20,000个字符的字符串.该字符串应包含100次出现的模式“CCGT”.大多数情况下,生成的字符串包含大约20-30个实例. int N = 20000; std::string alphabet("ACGT"); std::string str; str.reserve(N); for (int i
我有一个要求,我有字母“ACGT”,我需要创建一个约20,000个字符的字符串.该字符串应包含100次出现的模式“CCGT”.大多数情况下,生成的字符串包含大约20-30个实例.

int N = 20000;
    std::string alphabet("ACGT");
    std::string str;
    str.reserve(N);
    for (int index = 0; index < N; index++)
    {
        str += alphabet[rand() % (alphabet.length())];
    }

如何调整代码以使模式更频繁地出现?

编辑 – 有没有办法改变字母表,即 – ‘A’,’C’,’G’,’T’,’CCGT’作为字母表的字符?

谢谢.

解决方法

生成包含100 x 0和490 1s,2s,3s和4s的int数组
[000000 …. 222221 …. 2222等]制作近20,000个条目.

然后随机随机播放它(std :: random_shuffle)

然后写一个字符串,其中每个0转换为’CCGT’,每个1转换为’A’,每个2转换为….等

我认为这可以为您提供所需的内容,通过调整原始的整数数组,您也可以更改输出中的“A”字符数.

编辑:如果这不够随机,请在开始时执行100 0,然后随机选择1-4.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读