c++ 随机数

devtools/2024/9/20 4:02:13/ 标签: c++, 算法, 生物信息学

在 C++ 中生成随机数通常需要使用随机数生成器。C++11 引入了 <random> 头文件,其中包含了用于生成随机数的类和函数。

1.  随机选择一个数

#include <iostream>
#include <random>int main() {// 创建一个 random_device 对象用于生成随机种子std::random_device rd;// 使用随机种子初始化一个默认随机数引擎std::mt19937 gen(rd());// 创建一个均匀分布的随机数分布器,范围是 [1, 100]std::uniform_int_distribution<int> dis(1, 100);// 生成随机数int random_num = dis(gen);// 输出随机数std::cout << "Random number: " << random_num << std::endl;return 0;
}

2. 从string序列中随机选择一个元素

#include <iostream>
#include <string>
#include <random>// 函数:从字符串中随机选择一个字符
char randomSelectChar(const std::string& str) {// 获取字符串的长度size_t len = str.length();// 生成一个随机的索引值std::random_device rd;/*std::mt19937 是 C++ 标准库中的一个伪随机数生成器(PRNG),它基于梅森旋转算法实现。这个生成器在 C++11 中被引入,提供了高质量的随机数序列。*/std::mt19937 gen(rd());std::uniform_int_distribution<size_t> dis(0, len - 1);size_t index = dis(gen);std::cout << "index: " << index << std::endl;// 返回随机选择的字符return str[index];
}int main() {// 示例用法std::string dna_seq = "AGCTGCGTCACCGTACGCTA";// 调用函数从字符串中随机选择一个字符char randomChar = randomSelectChar(dna_seq);// 输出随机选择的字符std::cout << "Randomly selected character: " << randomChar << std::endl;return 0;
}

3. 随机突变DNA序列中碱基

#include <iostream>
#include <string>
#include <random>
#include <vector>int main() {// 示例用法std::string dna_seq = "AGCTGCGTCACCGTACGCTAA";// index向量size_t dna_len = dna_seq.size();std::vector<size_t> seq_index;for (size_t index = 0; index < dna_len; ++index) {seq_index.push_back(index);}// 使用 std::random_device 获取随机数种子std::random_device rd;// 使用随机数种子创建默认的伪随机数引擎std::default_random_engine rng(rd());// 打乱seq_index中的元素std::shuffle(seq_index.begin(), seq_index.end(), rng);// 选择前n个元素,保证突变碱基数不超过最大允许值double mut_ratio = 0.2;size_t mut_num = dna_len * mut_ratio;std::cout << "mutated base num: " << mut_num << std::endl;seq_index.resize(mut_num);std::cout << "original sequence: " << dna_seq << std::endl;// 突变序列,不改变GC含量for (auto index : seq_index){if (dna_seq[index] == 'A')dna_seq[index] = 'T';else if (dna_seq[index] == 'T')dna_seq[index] = 'A';else if (dna_seq[index] == 'G')dna_seq[index] = 'C';else if (dna_seq[index] == 'C')dna_seq[index] = 'G';}std::cout << "mutated sequence: " << dna_seq << std::endl;return 0;
}


http://www.ppmy.cn/devtools/28294.html

相关文章

深入探索 MySQL:成本模型解析与查询性能优化

MySQL作为最流行的关系型数据库管理系统之一&#xff0c;在各种应用场景中都有着广泛的应用。 然而&#xff0c;在处理大规模数据时&#xff0c;查询性能往往成为了关注焦点。 本文将深入探讨MySQL的成本模型&#xff0c;解析其工作原理&#xff0c;并提供一系列优化策略&…

Word域代码学习(简单使用)-【SEQ】

Word域代码学习(简单使用)-【SEQ】 快捷键 序号快捷键操作1 Ctrl F9 插入域代码花括号2 F9 显示域代码结果3 Shift F9 切换为域代码4 Windows Alt F9 切换全部域代码 域代码说明 域代码不区分大小写在word中&#xff0c;依次选择插入➡文档部件➡域即可选择插入…

Unity类银河恶魔城学习记录15-5,6 p157 Audio time limiter p158 Area sound

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili​​ AreaSound.cs using System.Collections; using System.Collections.G…

alsactl 保存音频配置

在root下执行 1、关闭音频通道 amixer cset numid2,ifaceMIXER,namePlayback Path OFF2、保存关闭的音频通道 alsactl store -f /var/lib/alsa/asound.state3、恢复保存关闭的音频配置 alsactl restore -f /var/lib/alsa/asound.state4、打开音频通道 amixer cset numid2,ifac…

Python | Leetcode Python题解之第62题不同路径

题目&#xff1a; 题解&#xff1a; class Solution:def uniquePaths(self, m: int, n: int) -> int:return comb(m n - 2, n - 1)

设计模式之解释器模式

解释器模式是一种行为设计模式&#xff0c;它定义了如何解释一个特定语言的句子。 详细介绍 解释器模式的核心在于定义一个解释器接口和一组实现该接口的类&#xff0c;这些类用于解释特定语言的各个组成部分&#xff0c;如表达式、操作符、变量等。解释器模式通常构建一个抽象…

C# Solidworks二次开发:枚举应用实战(第八讲)

大家好&#xff0c;今天还要介绍我们的枚举应用实战系列。 下面是今天要介绍的枚举值&#xff1a; &#xff08;1&#xff09;第一个为swCommands_e&#xff0c;这个枚举的含义为sw工具栏和菜单命令&#xff0c;下面是官方的具体枚举值&#xff1a; MemberDescriptionswComm…

GQA分组注意力机制

一、目录 定义demo 二、实现 定义 grouped query attention&#xff08;GQA&#xff09; 1 GQA 原理与优点&#xff1a;将query 进行分组&#xff0c;每组query 参数共享一份key,value, 从而使key, value 矩阵变小。 2. 优点&#xff1a; 降低内存读取模型权重的时间开销&am…

构建本地大语言模型知识库问答系统

MaxKB 2024 年 4 月 12 日&#xff0c;1Panel 开源项目组正式对外介绍了其官方出品的开源子项目 ——MaxKB&#xff08;github.com/1Panel-dev/MaxKB&#xff09;。MaxKB 是一款基于 LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统。MaxKB 的产品…

STM32 DMA直接存储器存取

单片机学习&#xff01; 目录 文章目录 前言 一、DMA简介 1.1 DMA是什么 1.2 DMA作用 1.3 DMA通道 1.4 软硬件触发 1.5 芯片资源 二、存储器映像 2.1 存储器 2.2 STM32存储器 三、DMA框图 3.1 内核与存储器 3.2 寄存器 3.3 DMA数据转运 3.4 DMA总线作用 3.5 DMA请求 3.6 DMA结构…

Meta Llama 3 性能提升与推理服务部署

利用 NVIDIA TensorRT-LLM 和 NVIDIA Triton 推理服务器提升 Meta Llama 3 性能 我们很高兴地宣布 NVIDIA TensorRT-LLM 支持 Meta Llama 3 系列模型&#xff0c;从而加速和优化您的 LLM 推理性能。 您可以通过浏览器用户界面立即试用 Llama 3 8B 和 Llama 3 70B&#xff08;该…

IntelliJ IDEA 常用快捷键

IntelliJ IDEA 是一款功能丰富的集成开发环境&#xff0c;拥有大量的快捷键来提高开发效率。由于版本更新可能会带来快捷键的变化&#xff0c;以下列出一些常用的 IntelliJ IDEA 快捷键&#xff0c;以供参考&#xff1a; 通用快捷键 CtrlN - 新建项目CtrlShiftN - 新建文件Ct…

【MATLAB画图】如何绘制图像坐标系

首先我们需要图像坐标轴的原点在左上角&#xff1a; set(gca,ydir,reverse,xaxislocation,top); 然后我们需要坐标轴上加上箭头 quiver(0, 0, 0, 520); % 在(x1, y1)处绘制一个箭头&#xff0c;其方向和长度由(dx, dy)确定 quiver(0, 0, 700, 0); % 在(x1, y1)处绘制一个箭头…

AJAX家政系统 自营+多商家(高级授权)+独立端口 -源码下载

应用介绍 后台&#xff1a;https://service.hnajax.com/hxeJVakAdf.php/index/login AJAX家政系统 自营多商家(高级授权)独立端口 基于FastAdmin和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统&#xff0c;用户端、服务端(高级授权)、门店端(高级授权)各端…

⑥ - 后端工程师通识指南

📖 该文隶属 程序员:职场关键角色通识宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅

监控因为带宽打满造成的 MySQL 复制延迟

目录 1. 写表版本 2. 写文件版本 1. 写表版本 监控脚本文件 get_Gtid_totable.sh 内容如下&#xff1a; #!/bin/bashsource ~/.bash_profile# 获取主库 binlog 位点 amysql -uroot -p123456 -h172.30.4.6 -P3306 -e "show master status\G" 2>/dev/null | egre…

单片机排队叫号系统Proteus仿真程序 有取号键和叫号键以及重复叫号键 有注释

目录 1、前言 ​ 2、程序 资料下载地址&#xff1a;单片机排队叫号系统Proteus仿真程序 有取号键和叫号键以及重复叫号键 有注释 1、前言 系统组成&#xff1a;STC89C52RCLcd1602蜂鸣器按键 具体介绍&#xff1a; Lcd1602排队叫号系统&#xff0c;有取号显示窗和叫号显示窗…

Mysql数据库系统之数据库创建

约定 在Mysql数据库中默认是不区分大小写的。因此我们约定一下&#xff0c;关键字大写&#xff0c;其他小写。 在数据库系统中创建用户数据库 这个操作是需要在有权限的数据库用户来完成。 语法&#xff1a; CREATE DATABASE [IF NOT EXISTS] database_name [CHARACTER SET…

【Unity Consoler Redirection】Unity Log 跳转重定向

Unity Log 跳转重定向 为何要写这个重定向&#xff1f;开始 Hello大家好&#xff0c;这里VimalaEric&#xff0c;今天给大家介绍一个实用脚本 UnityConsoler 跳转重定向。 为何要写这个重定向&#xff1f; 因为有时候会自己写脚本打log&#xff0c;从而实现如输出不同的颜色、…

图像处理的一些操作(1)

图像处理 1.安装PIL&#xff0c;skimage库1.1导入skimage库中的oi模块和data模块 2.读取图像文件2.1读取图像文件2.2 以灰度模式读取图像2.3 查看示例图像的目录路径2.4 读取chelsea图片2.5 加载示例图片并保存2.6 获得加载图片的信息2.6.1 输出图片类型2.6.2 输出图片尺寸2.6.…