| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 902 人关注过本帖
标题:请问这个问题出在哪了,随机序列问题!
只看楼主 加入收藏
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
结帖率:93.94%
收藏
已结贴  问题点数:30 回复次数:12 
请问这个问题出在哪了,随机序列问题!
随机产生5000万个0至7内的数字,并将随机产生的5000万个数字中的0和1转化成A,2和3转化成T,4和5转化成C,6和7转化成G,
请问各位大侠该怎么办呀?
随机产生的5000万个数字连成一串。
谢谢!!!
这是一位热心朋友帮我编的程序,但有些小问题,本人能力有限,难以发现,望各位热心朋友积极帮助!!!
谢谢!!!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define AMOUNT 132373897  //随机产生的字符串的碱基个数

int main()
{
FILE * fpnum=fopen("E:\\寻找内含子序列\\numout.txt","wt");   //储存随机数
    FILE * fpstr=fopen("E:\\寻找内含子序列\\strout.txt","wt");    //储存数字转化成字符的字符串
    int num=0;
    char ch;
    int i;
for(i=0;i<AMOUNT;i++)
{
     num=rand()%8;    //产生随机数
  fprintf(fpnum,"%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,fpstr);    //转化数字,产生字符串
}
fclose(fpnum);
fclose(fpstr);
return 0;
}

搜索更多相关主题的帖子: include 内含子 字符串 朋友 
2013-07-15 11:52
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:8 
小问题是什么?

思考赐予新生,时间在于定义
2013-07-15 11:59
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 2楼 love云彩
我也不清楚,只是感觉生成的数并不随机,比如说某一列,竟然会很规律的出现0011223344556677之后又0011223344556677不断循环下去的现象,感觉很不对,希望大虾赐教!!
谢谢!!!
2013-07-15 12:20
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:8 
貌似楼主没有对随机数进行初始化种子

DO IT YOURSELF !
2013-07-15 14:36
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:8 
额,对的。。。
srand()和time()两个函数拼进去
2013-07-15 14:37
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
按照4楼的意思修改,再运行看看

思考赐予新生,时间在于定义
2013-07-15 17:24
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
以下是引用wp231957在2013-7-15 14:36:14的发言:

貌似楼主没有对随机数进行初始化种子
请问怎样进行初始化种子,这个不太在行,希望各位大侠帮忙。
谢谢!!!
2013-07-15 19:55
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
srand()函数的用法自己百度就行了
2013-07-15 20:04
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
以下是引用心灯甚亮在2013-7-15 20:04:00的发言:

srand()函数的用法自己百度就行了
您好,这是我改过的,可产生的数还是不随机,请问是什么原因?实在麻烦您了,谢谢!!!!!
#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:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
num=rand()%4;    //产生随机数
        switch(num)
        {
        case 0:
            ch='A';
            break;
        case 1:
            ch='T';
            break;
        case 2:
            ch='C';
            break;
        case 3:
            ch='G';
            break;
        }

DO IT YOURSELF !
2013-07-16 15:28
快速回复:请问这个问题出在哪了,随机序列问题!
数据加载中...
 
   



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

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