| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2333 人关注过本帖, 1 人收藏
标题:题目,绳圈,小弟没思路,
只看楼主 加入收藏
mary92
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-28
收藏
得分:0 
鉴于前面的思路过于复杂,故改进 为 “思路2.0”,如下:
1)设置一个100位二进制数(与一百条绳相对应),初始化值各位均为0;
2)圈的含义:
      从左至右读入该100位二进制数,由一端或一个1到下一个端或1(不包含该1)所走过的二进制序列为一个圈;
3)经上,“求100条绳,形成多少个绳圈的概率最大”,成功转变为“求找到i,使得 组合数(C 100 i)/2的上临界整数 最大”(其中i为100位二进制数中,出现1的频度,除全1序列外,圈数=i+1 ).
2014-03-28 10:03
mary92
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-28
收藏
得分:0 
举例如下:
   求3条绳,形成多少个绳圈的概率最大?
1)设置一个3位二进制数,初始化各位为0;
2)形成一个圈(对应i=0): 000 ;组合数(C 3  1-1)/2的上临界整数 为 1
   形成两个圈(对应i=1):0   10 和 00  1;组合数(C 3 2-1)/2的上临界整数 为 2
   形成三个圈(对应i=3):1   1   1;组合数(C 3 3 )/2的上临界整数 为 1
3)故形成两个圈的概率最大。
2014-03-28 10:12
mary92
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-28
收藏
得分:0 
算法如下:
 1)全局变量#define N 100;
 2)编制 一求组合数 的 函数long combination(N,i);
 3)主函数如下核心:
  long max=combination(N,0);
  int n=0+1;  //初始化 n,n为当前概率最大的圈数
  for(int i=0;i<N;i++){    // i 为 1 出现频度
    if(max<combination(N,i)){
         max=combination(N,i);
         n=i+1;
    }
  }
 输出n即为最大概率的圈数;
2014-03-28 10:27
mary92
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-28
收藏
得分:0 
之所以除以2,是为了消去对称序列的影响
以3条绳为例是为了消除  1 00 和 00 1,(1 00 和00 1等效)
 之所以取上临界整数 是因为 0 10序列没有等效序列但仍被除以2,为补偿故取上临界
但在算法实现中可不考虑,因为除combination(N,i)变化外,“组合数(C 100 i)/2的上临界整数 ”式子中其他均为常数,均相等,可忽略。
2014-03-28 10:48
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
收藏
得分:0 
回复 18楼 蚕头燕尾
现在还没有找到官方的标准答案,

编写的程序,不能改变世界,却可以改变自己...
2014-03-28 17:43
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
回复 25楼 loveClangage
找到的话记得回来公布哈~


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2014-03-28 20:14
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
收藏
得分:0 
回复 26楼 蚕头燕尾
会的,

编写的程序,不能改变世界,却可以改变自己...
2014-03-29 19:51
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
你们可以先小范围内验证一下。比如两根绳子、三根绳子、四根绳子......

重剑无锋,大巧不工
2014-03-30 08:26
jinzheng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-4-27
收藏
得分:0 
回复 2 楼 tlliqi
应该是3圈
2014-04-27 18:48
快速回复:题目,绳圈,小弟没思路,
数据加载中...
 
   



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

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