| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1184 人关注过本帖, 2 人收藏
标题:随机产生5000万个数,并经数字在转化成字母?
只看楼主 加入收藏
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
随机产生5000万个0至7内的数字,并将随机产生的5000万个数字中的0和1转化成A,2和3转化成T,4和5转化成C,6和7转化成G
等同于
随机产生5000万个0至3内的数字,并将随机产生的5000万个数字中的0转化成A,1成T,2转化成C,3转化成G

srand( (unsigned)time(NULL) );
for( int i=0; i<50000000; ++i )
    fputc( file, "ATCG"[rand()%4] );

搞定

2013-07-13 15:50
止笺
Rank: 2
等 级:论坛游民
帖 子:15
专家分:19
注 册:2013-6-28
收藏
得分:0 
凑个热闹
2013-07-13 16:37
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 10楼 心灯甚亮
您好,我是生物物理专业的学生,确实对计算机编程感到困难,因为老师要求对随机序列检测并将结果做个样本,
因为力不从心,所以虚心请教各位大侠!
谢谢!!!
2013-07-13 18:58
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
收藏
得分:0 
晕了  放入文件中 那么就不用考虑数组的大小了……

找工作中……
2013-07-13 23:03
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
当使用指针时,数组大小可以是无穷大的,因为必要时可以在字符数组定义之前再加上static。
2013-07-14 16:01
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
额,昨天竟然没看到是四种碱基,看到“A”“C”直接“B”“D”了。强大的惯性思维
2013-07-15 14:33
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
以下是引用心灯甚亮在2013-7-15 14:33:31的发言:

额,昨天竟然没看到是四种碱基,看到“A”“C”直接“B”“D”了。强大的惯性思维
您好,您帮我的那个程序有时会重复产生随机序列,请问这怎么消除呀,我尝试改了一下,但还是不对,请指教,谢谢!!!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define AMOUNT 132373897  //随机产生的字符串的碱基个数
FILE *file,*fp;    //储存数字转化成字符的字符串
int main()
{   
srand((unsigned) time(NULL));
int i,num=0;
char ch;
file=fopen("E:\\寻找内含子序列\\strout.txt","w+");
fp=fopen("E:\\寻找内含子序列\\numout.txt","wt");
for(i=0;i<AMOUNT;i++)
{
     num=rand()%8;    //产生随机数
     fprintf(fp,"%d",num);
     switch(num/2)
     {
         case 0:
             ch='A';
             break;
         case 1:
             ch='T';
             break;
         case 2:
             ch='C';
             break;
         case 3:
             ch='G';
             break;
     }
     fputc(ch,file);
}
fclose(file);
fclose(fp);
return 0;
}
2013-07-16 15:20
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define AMOUNT 50000000

int main()
{

 FILE * fpnum=fopen("numout.txt","w+");

 FILE * fpstr=fopen("strout.txt","w+");

 int num=0;

 char ch;

 int i;

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

 {
  srand((unsigned)time(NULL));
  num=rand()%8;
  fprintf(fpnum,"%d",num);
  switch(num/2)
  {
         case 0:
             ch='A';
             break;
         case 1:
             ch='B';
             break;
         case 2:
             ch='C';
             break;
         case 3:
             ch='D';
             break;
  }
  fputc(ch,fpstr);
    }

 fclose(fpnum);

 fclose(fpstr);

 return 0;
}
2013-07-16 20:39
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 18楼 心灯甚亮
您好,我试了您的程序,还是重复,而且比先前要厉害些,不知是何原因,我列出一部分生成数据,如下
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000要生成0一下全是0,不知为什么,麻烦您了,谢谢!!!!
2013-07-16 21:27
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
回复 19楼 zhou31146001
好吧,我没测试
这个随机数种子放在前头的时候,因为次数太多,出现了重复,放后头,又会因为每次都重设种子而出现同样数字。这样吧:我就不测试了,改改发上来,你再试试。
2013-07-16 21:37
快速回复:随机产生5000万个数,并经数字在转化成字母?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054283 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved