一个随机数生成函数

来源:互联网 发布:mac imovie怎么保存 编辑:程序博客网 时间:2024/06/11 16:59

首先, 下面的函数生成一个随机的大于a且小于b的正整数

int randint(int a, int b)

{

        assert(a < b);

        int rand = RAND_MAX * rand() + rand();
        if(rand < 0)
                rand = -rand;
        return a + rand % (b  - a);
}

通过打乱数组前m个数的次序生成m个不同的随机数

void genshuf(int m, int n){int i, j;int *x = new int[n];for (i = 0; i < n; i++)x[i] = i;for (i = 0; i < m; i++) {j = randint(i, n-1);int t = x[i]; x[i] = x[j]; x[j] = t;}sort(x, x+m);for (i = 0; i < m; i++)cout << x[i] << "\n";}



原创粉丝点击