一个数组如何随打乱呢
比如 1-55个数,如何让他随机 排序呢<火山程序 类型 = "通常" 版本 = 1 />
数组.加入成员 (1)
数组.加入成员 (2)
数组.加入成员 (3)
数组.加入成员 (4)
数组.加入成员 (5)
置随机数种子 ()
计次循环 (数组.取成员数 ())
{
随机序号 = 取随机数 (1, 数组.取成员数 ())
索引 = 取循环索引 ()
暂存 = 数组.取成员 (索引)
数组.置成员值 (索引, 数组.取成员 (随机序号 - 1))
数组.置成员值 (随机序号 - 1, 暂存)
}
调试输出 (数组)
已解决,抄易代码的 <火山程序 类型 = "通常" 版本 = 1 />
方法 打乱数组 <公开 静态 注释 = "随机地打乱基本类型值数组和文本数组类中所有成员的顺序." 注释 = "注: 随机算法为std::mt19937,成员的每个排列都拥有相同的出现概率." 折叠
@视窗.外部头文件 = "<random>" @嵌入式方法 = "">
参数 欲操作数组 <注释 = "只支持基本类型值数组类和文本数组类" 注释 = "不支持对象数组类、字节集数组类、对象数组模板类" @匹配类型 = 通用类>
{
@ [](auto& arr) {
@ auto begin = arr.GetData();
@ auto end = begin + arr.GetCount();
@ std::shuffle(begin, end, std::mt19937{std::random_device{}()});
@ } (@<欲操作数组>.data())
}
Xelloss0618 发表于 2024-4-19 14:26
方法 打乱数组
参数 欲操作数组
{
谢谢大佬 Xelloss0618 发表于 2024-4-19 14:26
方法 打乱数组
参数 欲操作数组
{
可以集成piv里面 期待下个版本{:3_41:} 这不用抄易语言的也不用嵌入式,直接火山写也很简单 循环 取随机数 交换变量即可
页:
[1]