围棋吧 关注:339,218贴子:10,282,604

回复:俺也编个数学题呵呵,&围棋吧数学题系列(一)&

只看楼主收藏回复

900…


17楼2010-07-16 22:32
回复
    错了……
    我再想想


    19楼2010-07-16 22:36
    回复
      捆绑排序,最后除以2


      20楼2010-07-16 22:38
      回复
        算法是C2 5*A2 2/2


        22楼2010-07-16 22:41
        回复
          • 123.52.156.*
          回复:22楼
          怎么算的?


          23楼2010-07-16 22:45
          回复
            回复:21楼
            我指的不是你。。。是我ls的。。。。


            24楼2010-07-16 22:46
            回复
              我瞎说的
              无视我吧


              25楼2010-07-16 22:48
              回复
                好像错了
                应该是C2 4*2+C2 4*3
                这次绝对是正解错了我GJJ


                26楼2010-07-16 22:54
                回复
                  结果等于60我也大二了忘了C怎么算了


                  27楼2010-07-16 22:55
                  回复
                    • 123.52.156.*
                    回复:26楼
                    回复:27楼


                    29楼2010-07-16 22:56
                    回复
                      公布答案:
                      假设8个人用Aa,Bb,Cc,Dd表示,同种字母的两个人是一队,他们不能安排在第一轮比赛
                      我们从A开始排起,A不能和a一组,因此A和其他6个人的任何一人一组是一样的,第一步就有6种分法,我们可以假设A和B一组,这样问题化为剩下6人又多少种排法
                      剩下的问题分为两种情况讨论:
                      (一)a和b分到一组,这样的话,只剩下4个人,C,c,D,d,这四个人一共有2种分法:(1)C和d一组,c和D一组;(2)C和D一组,c和d一组
                      (二)a不和b一组,这样a和其他4人中任意一人分为一组是一样的,所以有4种方法,我们假设a和C一组。至此剩下来b,c,D,d,因为D不能和d一组,D有两种选择,而选择b,c中任意一个后,剩下的两个人自动归位一组,不用再排了。
                      因此最后的答案是:6*(2+4*2)=60(种)
                      明天更新下一题
                      


                      31楼2010-07-16 23:15
                      回复
                        看错了
                        自pia
                        6×(2+4×2)=60


                        32楼2010-07-16 23:16
                        回复
                          回复:32楼


                          33楼2010-07-16 23:17
                          回复
                            • 219.236.150.*
                            #include <stdio.h>
                            int num[9] = {99, 0, 0, 0, 0 ,0, 0, 0, 0};
                            int count = 0;
                            int norepeat(int n);
                            void trial(int i);
                            int main()
                            {
                                 trial(1);
                                 printf("count = %d\n", count/(24*16));
                                 return 0;
                            }
                            void trial(int i)
                            {
                                 if(i > 8)
                                 {
                                     for(int k = 1; k<=8; ++k)
                                         printf("%4d", num[k]);
                                     putchar('\n');
                                     ++count;
                                 }
                                 else
                                 {
                                     for(int j = 1; j <= 8; ++j)
                                     {
                                         num[i] = j;
                                         if(norepeat(i))
                                         trial(i+1);
                                     }
                                 }
                            }
                            int norepeat(int n)
                            {
                                 int k = num[n];
                                 int i;
                                 for(i = n - 1; i ; --i)
                                 {
                                     if(k == num[i])
                                         return 0;
                                 }
                                 if(n%2 == 0)
                                 {
                                     int a , b;
                                     a = num[n];
                                     b = num[n-1];
                                     if((a-b == 1) || (a-b == -1))
                                         if(a+b == 3 || a+b == 7 || a+b == 11 || a+b == 15)
                                             return 0;
                                 }
                                 return 1;
                            }


                            34楼2010-07-16 23:34
                            回复
                              • 219.236.150.*
                              回复:34楼
                              运行结果为60


                              35楼2010-07-16 23:42
                              回复