QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4484|回复: 3
打印 上一主题 下一主题

排列组合算法问题

[复制链接]
字体大小: 正常 放大
sir_tian        

4

主题

3

听众

474

积分

该用户从未签到

元老勋章

跳转到指定楼层
1#
发表于 2008-5-3 00:14 |只看该作者 |正序浏览
|招呼Ta 关注Ta
题目是:
输入一个偶数2k,输出满足下列条件的数:
e[1]+e[2]=
e[2]+e[3]+e[2k]=
e[3]+e[4]=
e[4]+e[5]=
e[5]+e[6]=
.....
e[2k-2]+e[2k-1]=
e[2k-1]+e[2k]+e[1]=
其中e在{-1,1,2,-2,...k,-k}取值
等号右面的数在{0,-1,1,-2,2,...-(k-1),k-1}中取值。
例:(当输入的偶数为2k=8时)
e1=-1;
e2=3;
e3=4;
e4=-3;
e5=1;
e6=-2;
e7=2;
e8=-4.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

53

主题

3

听众

495

积分

升级  65%

  • TA的每日心情
    郁闷
    2012-5-29 22:48
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    自我介绍
    大家好,我是自强君子。我喜欢数学,喜欢中国古文化,特别是春秋战国时期的文化,喜欢下围棋,打篮球。自强不息,厚德载物。

    群组数学专业考研加油站

    回复

    使用道具 举报

    gssdzc 实名认证       

    0

    主题

    2

    听众

    941

    积分

    升级  85.25%

    该用户从未签到

    群组兰州大学数学建模协会

    回复

    使用道具 举报

    sir_tian        

    4

    主题

    3

    听众

    474

    积分

    该用户从未签到

    元老勋章

    #include<iostream.h>
    #include <conio.h>
    #include<math.h>

    void Swap ( int &a ,int & b)

    {

    int temp = a; a = b; b = temp;

    }
    void Perm(int e[], int k, int m,int b[],int k1,int m1)
    {
    if( k1== m1 )
    {
    if(k==m)
    {
    int flag,i;
    for( i=3;i<m-1;i++)
    {
    if ((e+e[i+1])==b) {flag=1;continue;}else {flag=0;break;}
    + G* h* r0 p" X- }
    }

    if (i==m-1)
    if((e[1]+e[2])==b[1])
    if((e[m-1]+e[m]+e[1])==b[m-1]){
    for(int j=1;j<=m;j++)
    {
    cout<<e[j]<<" ";
    }
    cout<<endl;
    }
    }
    else
    {
    for ( int i = k; i <= m; i ++)
    {

    Swap( e[k],e );
    1 B0 S" _& f7 I3 \
    Perm( e,k + 1, m,b,k1,m1 ) ;

    Swap( e[k], e );

    }
    }
    }

    else
    {

    6 `9 j# r" I) f! x1 E" x! f+ I
    % z% I3 Y2 ~& n; G @4 N( |/ x! ^
    for ( int j= k1; j<= m1; j ++)
    {

    Swap( b[k1],b[j] );
    " s0 Y. @6 H4 n2 K
    Perm( e,k , m,b,k1+1,m1 ) ;

    Swap( b[k1], b[j] );

    }


    }

    }

    void main()
    {
    int n,c=-1,d=1,i,j;
    cout<<"请输入一个大于2的偶数n:\n";
    cin>>n;
    int e[20];
    int b[20];
    /* e[1]=6;
    e[2]=-1;
    e[3]=5;
    e[4]=-2;
    e[5]=4;
    e[6]=-3;
    e[7]=3;
    e[8]=-4;
    e[9]=2;
    e[10]=-5;
    e[11]=1;
    e[12]=-6;*/
    for(i=1;i<=n;i++)
    {
    e=c*(i+1)/2;
    c=-c;
    }
    0 K8 |5 o" v4 w7 D/ o
    for(j=1;j<n;j++)
    {
    b[j]=d*(j/2);
    d=-d;
    }
    int m1=n-1;
    int m=n;
    int k=1;int k1=1;
    Perm(e,k,m,b,k1,m1);
    cout<<endl<<"敲任意键(除回车键)退出..."<<endl;
    getch();

    % A& S* p. p- y4 G& a
    * z2 Z* t7 s. W# o, V
    }

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-26 08:41 , Processed in 0.653526 second(s), 70 queries .

    回顶部