当前位置: 首页 > news >正文

随机数产生学号c语言,[转载]产生随机数源程序

问题1:随机事件的C/C++语言实现。

第1题:产生随机数

(1)函数说明

rand()会返回一随机数值,范围在0至RAND_MAX

间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。

0<= rand()<=RAND_MAX

试问:产生0到100之间的随机数的C表达式是什么?

(2)参考“原型”

#include "iostream.h"

#include "stdlib.h"

#include "time.h"

void out_rand()

{

srand(time(0)); //随机种子

for(int i=0;i<10;i++)

{

cout<<100*rand()/RAND_MAX<

}

}

void main()

{

int n;

while(1)

{

cout<

2----退出系统"<

cin>>n;

if(n==1) out_rand();

if(n==2) break;

} }

(3)设计任务(“好”的算法:时间代价——语句、空间代价——占用“内存”)

利用产生随机数的编程技术,产生一个随机系统50个550到649之间的“需求量”随机数,并按间距为10统计各“需求量”区间的数据个数。

int a[50],i;

for(i=0;i<50;i++)

a[i]=( 649-550+1)* rand()/RAND_MAX+550

550----559:

560----569:

570----579:

……

第2题:可达矩阵——《系统工程》P43(汪应洛,机械工业出版社)

(1)参考“原型”

#include "iostream.h"

#include

#define N 3 //宏定义"数组"的大小,即"矩阵"的"阶数"。

void keda(int *pa,int *pb,int *pc,int n)

{

int i,j,k,f;

for(i=0;i

for(j=0;j

if(j==i) *(pb+n*i+j)=*(pa+n*i+j)+1;

else *(pb+n*i+j)=*(pa+n*i+j);

while(1) //利用矩阵幂运算求可达矩阵

{

for(i=0;i

for(j=0;j

{

*(pc+n*i+j)=0;

for(k=0;k

*(pc+n*i+j)+=(*(pb+n*i+k))*(*(pb+n*k+j));

if(*(pc+n*i+j)>1) *(pc+n*i+j)=1; //归"1"化处理

}

f=0;

for(i=0;i

for(j=0;j

if(*(pc+n*i+j)==*(pb+n*i+j)) f++;

if(f>=n*n) break; //两个矩阵相等,停止计算,得到可达矩阵。

else {for(i=0;i

for(j=0;j

}

}

}

void main()

{

int a[N][N],b[N][N],c[N][N];

int i,j,n=N;

for(i=0;i

for(j=0;j

cin>>a[i][j];

keda(&a[0][0],&b[0][0],&c[0][0],n); //调用求"可达矩阵"的自定义函数

for(i=0;i

{for(j=0;j

cout<

cout<

}

getche(); //暂停,等待从键盘输入任何一个字符而退出系统。

}

测试数据:

0 1 1

0 0 1

0 1 0

(2)设计任务

利用产生随机数的编程技术,产生一个随机系统的“7阶邻接矩阵”,并求解其可达矩阵,最后输出该“邻接矩阵”与其“可达矩阵”。

提示:可以考虑利用rand()产生0到100之间的随机数a[i][j];如果a[i][j]>50,则a[i][j]=1,否则a[i][j]=0。

注意:“邻接矩阵”的“主对角线”元素值是0

//参考答案

#include "iostream.h"

#include

#include "stdlib.h"

#include "time.h"

#define N 7 //宏定义"数组"的大小,即"矩阵"的"阶数"。

void keda(int *pa,int *pb,int *pc,int n)

{

int i,j,k,f;

for(i=0;i

for(j=0;j

if(j==i) *(pb+n*i+j)=*(pa+n*i+j)+1;

else *(pb+n*i+j)=*(pa+n*i+j);

while(1) //利用矩阵幂运算求可达矩阵

{

for(i=0;i

for(j=0;j

{

*(pc+n*i+j)=0;

for(k=0;k

*(pc+n*i+j)+=(*(pb+n*i+k))*(*(pb+n*k+j));

if(*(pc+n*i+j)>1) *(pc+n*i+j)=1; //归"1"化处理

}

f=0;

for(i=0;i

for(j=0;j

if(*(pc+n*i+j)==*(pb+n*i+j)) f++;

if(f>=n*n) break; //两个矩阵相等,停止计算,得到可达矩阵。

else {for(i=0;i

for(j=0;j

}

}

}

void main()

{

int a[N][N],b[N][N],c[N][N];

int i,j,n=N;

int flag;

while(1)

{

srand(time(0)); //随机种子

for(i=0;i

for(j=0;j

{

a[i][j]=100*rand()/RAND_MAX;

if(a[i][j]>50)

a[i][j]=1; else a[i][j]=0;

if(j==i) a[i][j]=0;

}

cout<

for(i=0;i

{for(j=0;j

cout<

cout<

}

keda(&a[0][0],&b[0][0],&c[0][0],n); //调用求"可达矩阵"的自定义函数

cout<

for(i=0;i

{for(j=0;j

cout<

cout<

}

cout<

cin>>flag;

if(flag==1) break;

}

getche(); //暂停,等待从键盘输入任何一个字符而退出系统。

}

问题2:数据排序的C/C++语言实现。

第1题:起泡法(上推排序法)

1、“原型”

#include "iostream.h"

void bubble_sort(int *item,int count)

{

register int i,j;

int t;

for(i=0;i

for(j=count-1;j>=i;--j)

if(item[j-1]>item[j])

{t=item[j-1];item[j-1]=item[j];item[j]=t;}

}

void main()

{

int a[]={6,8,3,9,7,4,5,1,2};

bubble_sort(a,9);

for(int i=0;i<9;i++)

cout<

相关文章:

  • linux lru cache,注解版spring实现LruCache存储数据
  • android ui组件 推荐,GitHub - zzti/XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!...
  • android 动画推动,android – 动画视图从另一个视图中滑出,推动下面的视图
  • Android10如何删除应用程序,谷歌安卓10新特性:应用卸载时可保留数据
  • android listview只显示一行数据,解决ScrollView中嵌套 listView只显示1行的问题
  • android file 4.4.1,vuejs文件在android低版本中(5.1,4.4)报错。导致页面空白
  • win7小米手机驱动安装是 其他设备内不显示android,win7系统连接小米4手机不显示“便捷式盘符”的解决方法...
  • 小米装android4.4,刷机之家教你设置小米MIUI/Android 4.4双系统(二)
  • android开源系统brvah,Brvah——一个强大的Adapter框架
  • html5改变窗口大小,js怎么改变窗口大小?js改变窗口大小方法
  • html网页设计需求分析,网页设计需求分析方法
  • 2021兰州三中高考成绩查询,2021兰州中考(初中学业水平测试)多少分考入高中 分数控制线预测分析...
  • 少数民族高考成绩查询2021,内蒙古2021高考民族汉考三级成绩查询时间及方法 什么时候查询...
  • 计算机专业英语考试题库,计算机专业英语-中国大学mooc-题库零氪
  • 图像处理与计算机视觉算法及应用 第2版,图像处理与计算机视觉算法及应用教程(源码+pdf)...
  • [Vue CLI 3] 配置解析之 css.extract
  • [译]前端离线指南(上)
  • CSS 提示工具(Tooltip)
  • gcc介绍及安装
  • happypack两次报错的问题
  • Java反射-动态类加载和重新加载
  • js算法-归并排序(merge_sort)
  • Material Design
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • ReactNativeweexDeviceOne对比
  • Redis 懒删除(lazy free)简史
  • spring security oauth2 password授权模式
  • vue-router的history模式发布配置
  • Vue小说阅读器(仿追书神器)
  • 如何在GitHub上创建个人博客
  • 写给高年级小学生看的《Bash 指南》
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • #1015 : KMP算法
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (04)odoo视图操作
  • (2)Java 简介
  • (52)只出现一次的数字III
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (区间dp) (经典例题) 石子合并
  • (未解决)macOS matplotlib 中文是方框
  • (正则)提取页面里的img标签
  • (转载)虚函数剖析
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ****Linux下Mysql的安装和配置
  • *Django中的Ajax 纯js的书写样式1
  • .apk 成为历史!
  • .axf 转化 .bin文件 的方法