24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 679  |  回复: 0

yali1990

金虫 (小有名气)

[求助] 自规避行走链

#include "stdafx.h"
#include "math.h"
#include"stdlib.h"//调用rand()及srand()函数
#include "time.h"
#define PI 3.1415926
void mass_center_Rg2()
{
        double X[10000][3];//链段坐标
        double MC_X[3];//质心坐标
        int l=500;//链条数
        int N;//聚合度
        srand((unsigned)time(NULL));
        double a,b,d;
        double r=2.0;
        double Sum_Rg2;
        double Rg2;
        double  X_Dis;
        double  Y_Dis;
        double  Z_Dis;
        FILE *write;
    write = fopen("Rg2_compute-1.txt","w";
        for(N=1000;N<=2000;N+=20)
{
                Sum_Rg2=0.0;
                for(int j=1;j         {
                        d=0.0;
                        X[0][0]=0.0;
                        X[0][1]=0.0;
                        X[0][2]=0.0;
                        MC_X[0] = 0.0;
                        MC_X[1] = 0.0;
                        MC_X[2] = 0.0;
                        for(int i=0;i                 {
                                d=((float)rand())/RAND_MAX;
                                a=d*PI;
                                b=d*PI*2.0;
                                X[i+1][0]=X[0]+r*sin(a)*cos(b);//链单元的坐标
                                X[i+1][1]=X[1]+r*sin(a)*sin(b);//链单元的坐标
                                X[i+1][2]=X[2]+r*cos(a);//链单元的坐标                                                                 
                         if((i+1)>=2)                                                                                                                                                               
         {
                                    for(int counter=i-1;counter>=0;counter--)  
                            {
                                           double r0,x0,y0,z0;  
                                   x0=X[i+1][0]-X[counter][0];
                                   y0=X[i+1][1]-X[counter][1];
                                   z0=X[i+1][2]-X[counter][2];
                                   r0=pow(x0,2)+pow(y0,2)+pow(z0,2);
                                   if(r0>=4.0)
                                    {                                             
                                       d=((float)rand())/RAND_MAX;
                                           a=d*PI;
                                           b=d*PI*2.0;
                                           X[i+1][0]=X[0]+r*sin(a)*cos(b);//链单元的坐标
                                           X[i+1][1]=X[1]+r*sin(a)*sin(b);//链单元的坐标
                                           X[i+1][2]=X[2]+r*cos(a);//链单元的坐标
                                                                                                           
                                }
                                       else continue;
                                 }      
                        }
            }
                        for(int i=1;i<=N;i++){
                                MC_X[0]=MC_X[0]+ X[0];
                                MC_X[1]=MC_X[1]+ X[1];
                                MC_X[2]=MC_X[2]+ X[2];
                          }
                       
                            MC_X[0]=MC_X[0]/N;
                            MC_X[1]=MC_X[1]/N;
                            MC_X[2]=MC_X[2]/N;
                               //printf("%f, %f ,%f\n",MC_X[0],MC_X[1],MC_X[2]);
                       
                        Rg2=0.0;
                       
                        for(int i=1;i<=N;i++){   
                                X_Dis=X[0]-MC_X[0];
                                Y_Dis=X[1]-MC_X[1];
                                Z_Dis=X[2]-MC_X[2];
                                Rg2+=pow(X_Dis,2)+pow(Y_Dis,2)+pow(Z_Dis,2);
                        }
                       
                        Rg2= Rg2/N;
                        Sum_Rg2+=Rg2;
                }
               
                Sum_Rg2=Sum_Rg2/l; //平均,求出均方半径  
                fprintf(write,"输出N=%d,Sum_Rg2=%f\n",N,Sum_Rg2);
                printf("N= %d \n", N);
        }
        fclose(write);
}



int _tmain(int argc, _TCHAR* argv[])
{
                  mass_center_Rg2();//调用函数求出链的质心和Rg

            getchar();
            return 0;
}

    这个是我编的代码,目的是每产生一个坐标,都判断它是否与前面的坐标重合,如果重合,则重新产生一个新的坐标。接下来是算质心坐标,进而计算均方回转半径。
   目前我的问题是:这个和我之前计算无规行走链,得到的均方回转半径值基本一致,我要怎么改变坐标的判断条件?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 yali1990 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料调剂 +11 一样YWY 2026-04-04 11/550 2026-04-04 23:58 by 永字号
[考研] 材料调剂 +10 懒羊羊轻置玉臀 2026-04-02 11/550 2026-04-04 21:56 by laoshidan
[考研] 一志愿华北电力大学(北京),材料科学与工程学硕265,求调剂 +11 yelck 2026-04-03 12/600 2026-04-04 19:52 by dongzh2009
[考研] 英一数二生物信息学287分,本科生物科学,求调剂 +6 碧水xyz 2026-03-29 7/350 2026-04-04 17:17 by babysonlkd
[考研] 求调剂 +5 Hll胡 2026-04-04 5/250 2026-04-04 16:49 by dongzh2009
[基金申请] 同年申报,是不是就不会派给你函评本子了? +4 redcom 2026-03-29 4/200 2026-04-04 10:08 by kudofaye
[考研] 求生物学专业调剂-332分 +5 云朵遛弯指南 2026-04-04 5/250 2026-04-04 10:05 by rzh123456
[考研] 化工求调剂 +11 荔香芝士椰奶 2026-04-03 11/550 2026-04-03 22:06 by 啵啵啵0119
[考研] 266分,求材料相关专业调剂 +13 哇呼哼呼哼 2026-03-30 15/750 2026-04-03 15:24 by arrow8852
[考研] 266求调剂 +3 08电气工程 2026-04-03 3/150 2026-04-03 14:05 by 1753564080
[考研] 325分化学调剂 +5 15771691647 2026-04-02 5/250 2026-04-03 09:58 by ChemPharm
[考研] 一志愿北京科技材料科学与工程288分,求调剂 +14 是辰啊 2026-04-02 14/700 2026-04-02 21:10 by dongzh2009
[考研] 362求调剂 +14 西南交材料专硕3 2026-03-31 14/700 2026-04-02 17:50 by yunlongyang
[考研] 调剂 +3 好好读书。 2026-04-01 6/300 2026-04-02 15:49 by liumengping
[考研] 0710生物学求调剂 +9 manman511 2026-04-01 9/450 2026-04-02 10:00 by zxl830724
[考研] 一志愿346上海大学生物学 +3 上海大学346调剂 2026-04-01 3/150 2026-04-02 08:36 by w虫虫123
[考研] 求调剂0703 +5 周嘉尧 2026-03-31 8/400 2026-04-01 20:32 by ltltkkk
[考研] 085404 22408 315分 +5 zhuangyan123 2026-03-31 6/300 2026-03-31 13:48 by limeifeng
[考研] 一志愿大连理工大学,机械工程学硕,341 +3 西瓜田的守望者 2026-03-30 3/150 2026-03-31 11:08 by asdfzly
[考研] 11408总分309,一志愿东南大学求调剂,不挑专业 +5 天赋带到THU 2026-03-29 6/300 2026-03-30 20:49 by dick_runner
信息提示
请填处理意见