关于自己手写shuffle
  • 板块灌水区
  • 楼主Azazеl
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/10/12 09:52
  • 上次更新2023/10/27 07:49:31
查看原帖
关于自己手写shuffle
160701
Azazеl楼主2022/10/12 09:52

模仿 ranodm_shuffle 的写法写了一个shuffle,然后发现下面两种当中第一种不能过题,但第二种能

namespace rad
{
    mt19937_64 R(time(0));
    inline int random(int l,int r)
    {
        uniform_int_distribution<int> distribution(l,r);
        return distribution(R);
    }
}using namespace rad;
inline void Shuffle(int *P,int len){for(int i=2;i<=len;i++) swap(P[i],P[random(1,i)]);}
inline void Shuffle(int *P,int len){for(int i=2;i<=len;i++) swap(P[i],P[(rand()%i)+1]);}

所以是因为前者的随机不均匀吗/yiw

2022/10/12 09:52
加载中...