如果一个网页上有10个 select下拉菜单,每个菜单有5个选项,用GooSeeker网络爬虫按照进位顺序自动选择每个选项的话,就会有5的10次方个组合。因为按照进位顺序选择的,实际操作要多于5的10次方,比如,从444进到1000时,除了第四位要进位,其它三位都要归零,做了5个动作。

如果只是0和1两个状态的开关,那么这种进位造成的额外动作比例就会很高。

哪位高手给一个计算模型,只要把所有组合都遍历到就行,不用按照进位顺序。

下图是顺序进位的遍历过程

拨动开关一列,1+表示第一位的开关由0->1,2-表示第二位开关由1->0


下图是非顺序进位,可以看到每次只拨一个开关




上图是随便写的遍历过程,是没有规律的。大家思考一下,应该是一种什么规律?

相关帖子

举报 使用道具
| 回复

共 4 个关于本帖的回复 最后回复于 2016-9-5 11:20

沙发
zengbb2006 初级会员 发表于 2016-3-31 21:25:48 | 只看该作者
这类问题相当于数学中的最优路径
设开关数为n,最优步骤为f(n)
显然f(1)=2
由附图分析显然f(2)=4,只用4步!
然后f(3)=2*f(2)=8, 而且步骤是对称的!!
所以很容易得到f(n)=2^n
如果是编程,就是迭代,用函数迭代生成一组最优顺序的多维数组,
用数组的值表示开关状态,再用
for  each a in arr {select动作}
觉得就是妥妥的了

QQ截图20160331205735.png (3.96 KB, 下载次数: 261)

QQ截图20160331205735.png
举报 使用道具
板凳
Fuller 管理员 发表于 2016-3-31 23:13:49 | 只看该作者
zengbb2006 发表于 2016-3-31 21:25
这类问题相当于数学中的最优路径
设开关数为n,最优步骤为f(n)
显然f(1)=2

好,谢谢
举报 使用道具
地板
zengbb2006 初级会员 发表于 2016-4-1 08:42:16 | 只看该作者
不客气
举报 使用道具
5#
xingzouxiaoyang 新手上路 发表于 2016-9-4 17:11:12 | 只看该作者
看看
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-4-25 06:37