易入门 发表于 2024-4-19 13:52:31

一个数组如何随打乱呢

比如 1-55个数,如何让他随机 排序呢

易入门 发表于 2024-4-19 14:26:04

<火山程序 类型 = "通常" 版本 = 1 />
数组.加入成员 (1)
数组.加入成员 (2)
数组.加入成员 (3)
数组.加入成员 (4)
数组.加入成员 (5)
置随机数种子 ()
计次循环 (数组.取成员数 ())
{
    随机序号 = 取随机数 (1, 数组.取成员数 ())
    索引 = 取循环索引 ()
    暂存 = 数组.取成员 (索引)
    数组.置成员值 (索引, 数组.取成员 (随机序号 - 1))
    数组.置成员值 (随机序号 - 1, 暂存)
}
调试输出 (数组)

易入门 发表于 2024-4-19 14:26:25

已解决,抄易代码的

Xelloss0618 发表于 2024-4-19 14:26:48

<火山程序 类型 = "通常" 版本 = 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())
}

易入门 发表于 2024-4-19 14:39:12

Xelloss0618 发表于 2024-4-19 14:26
方法 打乱数组
参数 欲操作数组
{


谢谢大佬

大有可为 发表于 2024-4-19 14:43:51

Xelloss0618 发表于 2024-4-19 14:26
方法 打乱数组
参数 欲操作数组
{


可以集成piv里面 期待下个版本{:3_41:}

weilai 发表于 2024-4-19 16:06:10

这不用抄易语言的也不用嵌入式,直接火山写也很简单

weilai 发表于 2024-4-19 16:08:22

循环 取随机数 交换变量即可
页: [1]
查看完整版本: 一个数组如何随打乱呢