「学习笔记」随机数据
前置知识——随机函数我们日常用的随机函数为`rand()`,虽然比较慢,
(资料图片仅供参考)
我们日常用的随机函数为 rand()
,虽然比较慢,但已经足够用了,它会随机生成一个范围在 \([0, 2^{31} - 1]\) 中的一个数。
使用时要用随机种子 seed
,可以使用 srand(seed)
来设置、更改随机种子,当然,不初始化也是可以的,只是同一个程序用相同的 seed
、相同的机器、相同的编译器下,随机的结果将会是一样的。
mt19937
是一个随机数生成器类,效用同rand()
,随机数的范围同unsigned int
类型的取值范围。
其优点是随机数质量高(一个表现为,出现循环的周期更长;其他方面也都至少不逊于rand()
),且速度比rand()
快很多。
const int N = 1e5 + 1;int n;struct union_find_set { int fa[N], siz[N]; int &operator [] (const int& x) { return fa[x]; } void reset() { for (int i = 1; i <= n; ++ i) { fa[i] = i; siz[i] = 1; } } int find(int x) { return fa[x] == x ? fa[x] : fa[x] = find(fa[x]); } void Union(int x, int y) { int fx = find(x), fy = find(y); if (siz[fx] <= siz[fy]) { swap(fx, fy); } fa[fy] = fx; siz[fx] += siz[fy]; }} ufs;int main() { srand(time(0)); n = rand() % 10 + 1; cout << n << "\n"; // 有多少个点 int cnt = 0; ufs.reset(); // 并查集初始化 while (cnt != n - 1) { int x = rand() % n + 1, y = rand() % n + 1; if (ufs.find(x) != ufs.find(y)) { cout << x << " " << y << "\n"; // 边 ufs.Union(x, y); // 并查集合并 ++ cnt; } } return 0;}
连向编号更小的节点int main() { srand(time(0)); int n = rand() % 10 + 1; cout << n << "\n"; // 有多少个点 for (int i = 2; i <= n; ++ i) { int x = rand() % (i - 1) + 1; cout << x << " " << i << "\n"; } return 0;}
随即图pair e[N << 2];map, bool> mp;int main() { mt19937 rnd(time(0)); int n = rnd() % 20 + 2; int m = (n + rnd() % n + 1); cout << n << " " << m << "\n"; // 有多少个点和边 int cnt = 0; for (int i = 2; i <= n; ++ i) { // 先构造一棵树 int x = rnd() % (i - 1) + 1; ++ cnt; e[cnt] = {x, i}; mp[{x, i}] = 1; } for (int i = n; i <= m; ++ i) { // 再随机剩下的边 int x, y; do { x = rnd() % n + 1, y = rnd() % n + 1; } while (x == y || mp[{x, y}]); // 判重 e[++ cnt] = {x, y}; mp[{x, y}] = 1; } random_shuffle(e + 1, e + m + 1); // 打乱顺序 for(int i = 1; i <= m; ++i) cout << e[i].first << " " << e[i].second << "\n"; return 0;}
随机子区间int l = rand() % n + 1, r = rand() % n + 1;if (l > r) swap(l, r);cout << l << " " << r << "\n";
关键词:
前置知识——随机函数我们日常用的随机函数为`rand()`,虽然比较慢,
8月10日,中芯国际(688981 SH,00981 HK)、华虹半导体(688347 SH,01
【东盟专线】“中国火锅之都”出新品自热火锅畅销东南亚中新社重庆8月1
中国报告大厅2023年8月10日环氧树脂价格最新走势监测显示:华东市场报
罪爱游戏把沉禁送入监狱攻略分享,罪爱游戏有一个支线任务就是需要把沉
【厄尔尼诺对大豆的影响及美豆单产预估】厄尔尼诺是一种地理气候现象,
为深入贯彻落实党的二十大报告中关于“深化全民阅读活动”的重要指示精
1 我爱你,所以卑微到尘埃里,然后开出花来。2 喝了你酿的爱情的酒,我
小区内人行道路面破损,每逢下雨就积水,给居民出行造成不便,让人闹心
丹江小三峡位于南水北调中线工程源头——河南省淅川县丹江口水库库区北
防晒“诸神之战”打响,防晒衣摇身变常服,白皙,防晒衣,羽绒服,upf,皮肤衣
弘阳地产:前7月合约销售金额150 36亿元-8月9日,弘阳地产发布7月销售
观点网讯:8月10日获悉,正荣地产官微显示,2023年1-7月合计交付共计23
河南日报客户端记者马青竹8月9日下午,第十届“创青春”河南青年创新创
中新网鄂州8月10日电(余情愫)“这一天,我们等了66年。”近日,在湖北
8月10日,A股延续窄幅震荡格局,新能源汽车板块受大盘影响持续震荡,新
在酷热难耐的夏季,天津的潘师傅正站在滚滚热浪中,向来门店修车的客户
东方网记者熊芳雨8月10日报道:爆米花、可乐、矿泉水,这是不少人看电
自7 34发布以来,我们已经修复了若干游戏性问题:-修复在距离外下达多
8月8日,“跨境鞋服第一股”子不语发布盈利预警,截至2023上半年公司预
证券时报·数据宝统计,截至今日上午10:29分,上证综指3254 44点,收于
近日,《中共中央国务院关于促进民营经济发展壮大的意见》正式公布。进
在难于实现的时代仍然大声提出来,并身体力行,这就是信仰的力量。我们
小小科学作业,蕴含创新人才成长大能量---中小学生的暑假生活,除了放
8月9日,海富通收益增长混合最新单位净值为2 164元,累计净值为3 824元
Copyright 2015-2022 中公酒业网 版权所有 备案号:沪ICP备2022005074号-18 联系邮箱:5855973@qq.com