收藏本页
联系我们
论坛帮助

>> 关于竞赛设计的各种算法,欢迎大家到此讨论
趣题之家信息学竞赛算法艺术 → 算法求解

  发表一个新帖子  发起一个新投票  回复本主题 您是本帖的第 3566 个阅读者
  标题:算法求解 平板   打印   收藏   推荐  
     帅哥哟,离线,有人找我吗?
    
    
    等级:管理员
    文章:76
    积分:238
    注册:2003-09-29
给欢乐发送一个短消息 把欢乐加入好友 查看欢乐的个人资料 搜索欢乐在的所有贴子 点击这里发送电邮给欢乐 引用回复这个贴子 回复这个贴子 楼主
发贴心情 算法求解

我正在编一个程序,需要用到一个算法。我百般思考终于没有解决这个难题。最终我改用了其他的算法。不过我还是对这个未解决的算法很感兴趣,于是写在这里求解


有n个数,分别是 1,2,3,…,n
现在要写出这n个数的所有组合方式(就是随便选择这几个数,共有2^n-1种选法),用这样的方法:


首先 选中 1。只有“1”被选中,其他的数字都没有选中。这是第1种组合方式。
然后循环以下步骤:
    如果最后一个选中的数后面仍然有未选中的数,就选中最后一个选中的数后面的一个数,形成下一个组合方式。
    如果最后一个选中的数就是最后一个数,就去掉选中已选中的最后一个数和已选中的倒数第二个数,并选中去掉选中这两个数前的已选中的倒数第二个数的后一个数,形成下一个组合方式。



比如n=4
组合结果是这样的:


第X种组合方式     为
     1           1
     2           1,2
     3           1,2,3
     4           1,2,3,4
     5           1,2,4
     6           1,3
     7           1,3,4
     8           1,4
     9           2
     10          2,3
     11          2,3,4
     12          2,4
     13          3
     14          3,4
     15          4
次为1,2,3,4四个数的所有组合结果


问题是,我想做到输入一种组合结果,让电脑计算出这是第几种组合方式


例如,输入n=4
输入 2,3,4
输出 11


欢迎你到趣题之家论坛!
发贴IP已设置保密 2004-10-04 18:38
       



网上贸易 创造奇迹! 阿里巴巴 Alibaba

Powered By Dvbbs Version 7.1.0
Copyright ©2003 - 2006 QTHome.Org
页面执行时间 00.12500 秒, 2 次数据查询
本论坛采用阿里巴巴支付宝网上银行支付系统,安全、可靠、便捷