首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

不相邻随机数有关问题

2013-10-29 
不相邻随机数问题请教高手:在c语言中,如何生成10个范围在0-5000的不相邻随机整数,所谓不相邻指的是生成的

不相邻随机数问题
请教高手:在c语言中,如何生成10个范围在0-5000的不相邻随机整数,所谓不相邻指的是生成的任意两个随机数之差的绝对值要大于1 ,最好有源码。
[解决办法]


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int myrandom()
{
        srand(time(NULL));
        return (rand() % 100) + (rand() % 50);
}

int main(void)
{
        int i;
        for(i=1; i<=10; i++)
        {
                printf("%d\n", (i *  myrandom()) + (i+ myrandom()));
        }
        return 0;
}

[解决办法]

只有10个用排除法也可以。
或者,每次把选取的数据,相邻的数据抽去,再随机抽取。
[解决办法]
多一次判断条件再取一次随机数就好了!
[解决办法]
每次生成随机数的时候 判断与前一个数的绝对值是否大于1  大于就加入记录表 不大于就直接丢弃 重新获取随机数

热点排行