高分求高手解决一道c++编程题,这题对我来说真的有点难

2024-10-28 17:24:28
推荐回答(5个)
回答1:

你看看这个程序行不行

随机数类:random.h

#include
#include
#define IM1 2147483563
#define IM2 2147483399
#define AM (1.0/IM1)
#define IMM1 (IM1-1)
#define IA1 40014
#define IA2 40692
#define IQ1 53668
#define IQ2 52774
#define IR1 12211
#define IR2 3791
#define NTAB 32
#define NDIV (1+IMM1/NTAB)
#define EPS 1.2e-7
#define RNMX (1.0-EPS)
unsigned int seed=0; //seed 为种子,要设为全局变量
void mysrand(long int i) //初始化种子
{
seed = -i;
}
long a[1];
class myrandom
{
public:
double ran1(long *idum)
{
int j;
long k;
static long idum2=123456789;
static long iy=0;
static long iv[NTAB];
float temp;
if (*idum <= 0)
{
if (-(*idum) < 1) *idum=1;
else *idum = -(*idum);
idum2=(*idum);
for (j=NTAB+7;j>=0;j--)
{
k=(*idum)/IQ1;
*idum=IA1*(*idum-k*IQ1)-k*IR1;
if (*idum < 0) *idum += IM1;
if (j < NTAB) iv[j] = *idum;
}
iy=iv[0];
}
k=(*idum)/IQ1;
*idum=IA1*(*idum-k*IQ1)-k*IR1;
if (*idum < 0) *idum += IM1;
k=idum2/IQ2;
idum2=IA2*(idum2-k*IQ2)-k*IR2;
if (idum2 < 0) idum2 += IM2;
j=iy/NDIV;
iy=iv[j]-idum2;
iv[j] = *idum;
if (iy < 1) iy += IMM1;
if ((temp=AM*iy) > RNMX) return RNMX;
else return temp;
}
};
矩阵类:matrix.h
#include
#include
#include
#include "random.h"
using namespace std;
class matrix
{
public:
outmatrix()
{
int c=2,d=2,m=0,n=1;//默认缓升的矩阵是两行两列且均弯拿是(0,1)之间的均匀分布
mysrand(time(0));//初始化
a[0]=seed;//初始化,注意:我用的不是C++自带的随机数函数,而是自编函数,这两行是对随机数的初始化,位置和数都不能变,变量"a"只能供随机数使用,你不能用!!!
myrandom ran;
int panduan=0;
cout<<"如果使用默认行列数请按0,否则请按1"< cin>>panduan;
if(panduan==1)
{
cout<<"请输入数组行列数"< cin>>c>>d;
}
vector > tdmatrix(d, vector(c)); //定义一个二维动态数组

panduan=0;

for(int i=0;i {

cout<<"均匀分布使用默认值请按0,否则请按1"< cin>>panduan;

if(panduan==1)
{
cout<<"请输入第"< cin>>m>>n;
}
for(int j=0;j {
tdmatrix[i][j]=m+ran.ran1(a)*(n-m);
}
panduan=0;
}
// cout<<"im here"< panduan=0;
//
cout<<"如果保存在默认文件夹中请按0,否则请按1"< cin>>panduan;
if(panduan==0)
{
char str[]="d:\\matrix.txt";
freopen(str, "w+",stdout);
}
else if(panduan==1)
{
char str[100];
cout<<"请输入保存路径和文件名,如:d:\\\\"<<"matrix.txt"< cin>>str;
freopen(str, "w+",stdout);
}
vector > tdmatrix1(c, vector(d));
for(i=0;i {
for(int j=0;j {
tdmatrix1[i][j]=tdmatrix[j][i];
cout< }
cout< }
}
};
测试程序:

#include "matrix.h"

void main()
{
matrix ma;
ma.outmatrix();
}
相关程序已发入你的邮箱,请查收
我的邮箱:hu_hu605@163.com

回答2:

class RandomMatrix
{
public:
RandomMatrix()
{
m_sPath = "1.txt"凳戚
m_nRow = 3;
m_nCol = 3;
}
RandomMatrix(String s,int r,int c):m_sPath(s),m_nRow(r),m_nCol(c)
{
}
//

//输入列数,得到随机数
virtual int getColValue(int col) = 0;

void genMatrix()
{
//设置大小
//产生数
//函数
}

void saveMatrix()
{
//写入路径的文枣丛陵件郑携
}

private:
String m_sPath;
vector m_vectMatrix;
int m_nRow;
int m_nCol;
};

回答3:

同学呢很专业,太专业蔽蚂拦了在百度这个鱼龙混杂得地方找不到物信真正满意得答案...我的经验告诉我这些问题在论坛上可以得到帮助,但是现宏胡成得代码没有人会去写得...

回答4:

我们班同学有弄这个的,我是一点不懂

回答5:

我知道一些,而且有现成的代码, 但是只有1部分的 代码 有些我也不知道怎么写