Ⅰ c语言随机函数在某些不连续的数中生成随机数 求解!!
先腊雹用一个数组储存这些无规洞陪律的数(n个)
然后生成0至n-1的随机数(纳局蠢用rand()%n)
将随机数做下标,从无规律数组中取出数字就可以了
Ⅱ C语言,如何生成一列无序的数列
1楼已经把程序写出来了灶旁游 我就解释下吧启哗
其实要生成随即数用到2个函数
srand()
和
rand()
当然rand()是可以单独使用的,不过你会发现每次的数列都是一样的,所以我们就要用到srand()
,它需要一个参数作为种子,我们要得到不同的数列,所以我们一般取时间作为种子,也就是参数time(0),这隐销个生成的随即数的范围是0-65535(也可能是其他的,根据操作系统定的),要的到10以内的,我们对结果取10为模的余数,这样就是0-9,然后把结果加1
Ⅲ 如何创建一个由1到n的无序数组。
创建一个有序数腊旦组 1-n
获得1-n随机数x 把第1个数定义为x
把之前的有序数轮中扰组取掉x 得到一个n-1长培顷度的数组
获得1到 n-1的随机数y 把第二个数定义为y
把有序数组减少到n-2
重复下去 直到有序数组为空
Ⅳ C语言如何产生不重复的随机数
用一个数组装随机数,一个数组表示已经记录过的随机数;
比如说随机0-8,生成一个随机8位数组且数组内各项不重复;
例:
intarray[8];
intarrayIndex[8]={0,0,0,0,0,0,0,0};
intk=0;
srand(100);
while(k<8){
intq=rand()%8+1;
if(arrayIndex[q-1]==1){
continue;
}
array[k]=q;
arrayIndex[q-1]=1;
k++;
}
(4)c语言如何生成无序数扩展阅读
C语言随机输出1~20不重复的随机数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
voidmain()
{
inta[20];
inti,j;
srand((int)time(0));
a[0]=rand()%20+1;
for(i=1;i<20;i++)
{
a[i]=rand()%20+1;
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
i--;
}
}
}
for(i=0;i<20;i++)
{
printf("%3dn",a[i]);
}
}
Ⅳ C语言常用算法中,查找无序数列的算法有哪些
可以用排序+折半查找 代码如下,编译软件DEV C++通过,要查找多少个数只要改一下宏定义就可以了另外要是再优化可以把排序的算法改一改#define A 10
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,a[A],j,t,b,min,mid,max,p[A],k;
p[0]=1; p[1]=2; p[2]=3; p[3]=4; p[4]=5; p[5]=6; p[6]=7; p[7]=8; p[8]=9; p[9]=10;
printf("请输入%d个数\n",A);
for(i=0;i<A;i++)
scanf("%d",&a[i]);
for(i=0;i<A;i++)
for(j=i+1;j<A;j++)
if(a[i]>a[j])
{ t=a[i];
k=p[i];
a[i]=a[j];
p[i]=p[j];
a[i]=t;
p[i]=k;
}
printf("请输入要查找的数字\n");
scanf("%d",&b);
min=0;
mid=A/2;
max=A-1;
for(i=0;i<A;i++)
{if(b==a[min]) {printf("您所输入的数为第%d个\n",p[min]); break;}
if(b==a[max]) {printf("您所输入的数为第%d个\n",p[max]); break;}
if(b==a[mid]) {printf("您所输入的数为第%d个\n",p[mid]); break;}
if(min>=max) {printf("ERROR 您所输入的数字%d不在此数组内"); break;}
if(b>a[mid])
{min=mid;<br> mid=(min+max)/2;}
if(b<a[mid])
{ max=mid;
mid=(max+min)/2;}
}
system("pause");
}
Ⅵ 请问如何用C语言产生一个四位无重复数字的四位数
可以先把0-9放入一个缺余数组,然后对第一位,随机生成一个10以内的数如:rand()%8+1(避免高位是0的情况),产生的随机数来取数组中的中差数,并把数组在该位置以后的数前移,即删掉该数字。。第二位用rand()%8,得到,从数组中取出该对应位置的数字作为第二位,然后删掉该数组。。。第三位用rand()%7,第四位用rand()%6。。。这样就可以生成一个四位无重复卖扮皮数字的四位数了
Ⅶ 用C语言编写,使用51单片机生成0--9不重复数字。请问用什么做随机种子,如何产生不重复随机数
//正好我在做一个抽奖程序,有一段随机数去重代码,你可以借鉴一下。
//这种算法此磨斗比较节省空间(至少我是这么觉得)
//用一个unsignedint型变量,记录游盯已生成的随机数,代码如下
#include<reg51.h>
#include<stdlib.h>
unsignedintrandom=0x00;
unsignedcharnums[10]={0};
voidmyrand()
{
unsignedchartemp,i;
for(i=0;i<10,++i)
{
temp=rand();
if((random>>temp)&0x01==0x00)
森磨nums[i]=temp;
}
}
//你根据你的需求改吧,求采纳。