📄 generator.cpp
字号:
#include <cstdio>
#include <cstdlib>
#include <cassert>
size_t density=20;
size_t rowmax=5000;
size_t colmax=50000;
size_t seed=2;
void ParseCommand(int argc,char *argv[]);
int main(int argc,char *argv[]){
int data;
ParseCommand(argc,argv);
FILE *write;
write = fopen("matrix.dat","w");
srand(seed);
fprintf(write,"%d %d\n",(int)rowmax,(int)colmax);
for(int i=0; i<rowmax; i++){
for(int j=0; j<colmax; j++)
if((data=rand())%density == 0)
fprintf(write,"%d %d %d\n",i,j,rand()%10000);
}
fprintf(write,"%d %d %d\n",0,0,-1);
fclose(write);
}
///////////////////////////////////////////////////////////////
inline void Usage(){
printf("usage:generator.exe [-d 5] [-b 5000 5000] [-s 2] \n");
printf("\t-d is density\n");
printf("\t-b is boundary of matrix\n");
printf("\t-s is seed to srand()\n");
}
inline void Assert(bool b)
{
if(!b){
Usage();
exit(0);
}
}
void ParseCommand(int argc,char *argv[]){
for(int i=1; i<argc; i++){
if(argv[i][0]=='-'){
switch(argv[i][1]){
case 's':
Assert(argv[++i]);
seed=atoi(argv[i]);
Assert(density);
break;
case 'd':
Assert(argv[++i]);
density=atoi(argv[i]);
Assert(density);
break;
case 'b':
Assert(argv[++i]);
rowmax=atoi(argv[i]);
Assert(argv[++i]);
colmax=atoi(argv[i]);
Assert(colmax>0 && rowmax>0);
break;
default:
Assert(false);
}
}else{
Assert(false);
}
}
printf("matrix:%d,%d\tdensity:%d\ttseed:%d\n", (int)rowmax,(int)colmax,(int)density,(int)seed);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -