
#include <stdioh>
#include <stdlibh>
#include <timeh>
int main()
{
int m[22]={0};
int i;
srand(time(NULL));
for(i = 0; i < 8; )
{
int t = rand()%22;
if(m[t]==0)
{
m[t] = 1;
i++;
}
}
for(i = 0; i < 22; i ++)
if(m[i]) printf("%d ", i);
printf("\n");
return 0;
}
1 创建随机数窗体:
2 编写产生随机数的事件:
Private Sub Command1_Click()
Randomize '初始化随机数生成器
List1AddItem Int((Rnd 9) + 1)
End Sub
3 运行结果:
clc,clear;
%一个三维随机运动的小球
r=05;%球的半径
%运动的范围
x1=0;x2=30;
y1=0;y2=30;
z1=0;z2=30;
%初始位置 随机生成
x0=rand(1)(x2-x1-2r)+x1;
y0=rand(1)(y2-y1-2r)+y1;
z0=rand(1)(z2-z1-2r)+z1;
pos=[x0;y0;z0];
figure(1)
[x,y,z] = ellipsoid(pos(1),pos(2),pos(3),r,r,r);
surf(x,y,z,ones(size(x))) %画出来球
n=200;%随机运动的次数
p=1; %p可以用来控制每次运动距离的大小
for i=1:n
%产生运动的方向与运动距离,用一个随机向量表示
s=0;
while(s==0)
direct=rand(3,1)-05;
dd=direct/norm(direct,2);
dd=ddp;
post=pos+dd;
if (post(1)>=x1+r&&post(1)<=x2-r)&&(post(2)>=y1+r&&post(2)<=y2-r)&&(post(3)>=z1+r&&post(3)<=z2-r)
s=1;
end
end
pos=pos+dd;
[x,y,z] = ellipsoid(pos(1),pos(2),pos(3),r,r,r);
surf(x,y,z,ones(size(x))) %画出来球
axis([x1 x2 y1 y2 z1 z2])
pause(01); %设置暂停时间
end
因为是随机运动 如果每次运动的距离设置的不大,小球基本上是在初始位置的范围内运动
方法很多,因为编程语言不同,只写下程序思路
1:CPU有些寄存器位是保留的,不保证每次数据,也就是数据可能是随机的。
2:检测外部接入信号的时间长度。
3:设置一个RAM在多段程序中调用,即有意的造成RAM不受控制。
如果有按键来启动这个随机数生成程序,那就再简单不过了
按键程序中都有消抖程序,要做的就是来检测每个干扰点的时间或者2个干扰点之间的特定RAM就是了。
以上就是关于用C语言实现从1~22中随机抽取8个数的程序全部的内容,包括:用C语言实现从1~22中随机抽取8个数的程序、用VB做一个产生随机数的程序、Matlab编写程序实现一个随机运动的小球等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)