| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1806 人关注过本帖
标题:自认为技术比较牛B的可以进来,微软牛题[如何组成不重复的字符串]
只看楼主 加入收藏
Fancylovingu
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-7-28
收藏
得分:0 
要是有相同的字符串怎么办?
2008-08-03 19:05
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
楼主的意思是
一个文件里
有很多行
把这些行从新组成以行并且要进行无重复的组合20组?
如果是这样很像一种随机数算法的应用,那着题只能算麻烦而以,并不能算难。
首先要读取总行数和一个文本文件里的每一行放入一个数组中(数组要比ArrayList省内存)
然后对数组进行随机排序,以前个人看过一篇.NET的随机算法,那个算法里会随机生成一定范围内无重复的数组,其原理在随机因子上,那个随机因子用的是以毫秒做乘法,因为毫秒的变化要比秒快,因此随机算法才能不重复。
2008-08-03 20:41
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
不过唯一的问题是原始文本文件里只有行数多才能做到低概率的无重复组合,这就跟为什么体育彩票要设置36个号码的道理一样,在1-36中组合方式是非常多的,因此与中奖号码相同的组合的概率就非常低。而如果只是2个号码的彩票,那么组合方式就有限,所以重复的概率很高。
2008-08-03 20:48
Fancylovingu
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-7-28
收藏
得分:0 
这个题目的关键是写一个n!排列组合的算法。比如输入3,就输出:
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1
当然这个算法比较难,比如n=100或者更大的时候,主要考数学思维,应该找个数学专业的来提供思路。
如果这个算法写出来了,这个题目基本上就出来了。
2008-08-03 21:13
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
呵呵  值得思考

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-08-04 08:59
gongdian
Rank: 2
等 级:论坛游民
帖 子:127
专家分:11
注 册:2008-3-1
收藏
得分:0 
14楼的朋友说的对。如果n=5,就有120种排列。
是全排列问题,在纸上会写,在程序上就不会了,
2008-08-04 14:43
Fancylovingu
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-7-28
收藏
得分:0 
这个题目我已经有点眉目了。下面提供一下我的思路:
1)将文件的字符串读到字符串数组string str[n-1]中(有n个字符串)
2)将str的下标进行排列组合,共有n!个不同下标组,把它们放在
   二维数组int array[n!-1][n-1]中(n!行n列)
3)通过array保存的n!种下标组来访问str,就可以得到n!种不同的组合

其中最关键的第2)步,就是14楼说的算法。
现在提供14楼算法的思路,
请大家指点,并帮忙实现:
我给它取了个名字:递归填数字(填写n!行n列数组,每行都由相同的n个数字组成,且任意两行不相同)
(PS:如果我将前面的n-1列都填好了,且保是正确的。你会填最后一列吗?)
1)假设前面的m(1<=m<=n)列都已经填好了
2)填写第m+1列
3)递归到第一列(第一列已经填好)
2008-08-05 18:42
快速回复:自认为技术比较牛B的可以进来,微软牛题[如何组成不重复的字符串]
数据加载中...
 
   



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

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