搜索
当前位置: 678彩票官网 > 递归向量 >

C语言巨难的一个编程实现数据筛选实在想不通怎么解决请求帮助。

gecimao 发表于 2019-05-01 09:34 | 查看: | 回复:

  C语言巨难的一个编程实现数据筛选,实在想不通怎么解决,请求帮助。或者有没有别的数据结构可解决此问题

  C语言巨难的一个编程实现数据筛选,实在想不通怎么解决,请求帮助。或者有没有别的数据结构可解决此问题

  有n个数组每个数组有m个数字,从文件读入一组数字时,例如读入02336五个数字,则从第0个数组内选择一个数,第2个数组内选择1个数,第3个数组内选择两个数,第6个数组内选择1个数。即读...

  有n个数组每个数组有m个数字,从文件读入一组数字时,例如读入0 2 3 3 6五个数字,则从第0个数组内选择一个数,第2个数组内选择1个数,第3个数组内选择两个数,第6个数组内选择1个数。即读入的数字如果有两次则要从那个数字对应的数组内取出两个。并且涉及到的数组要给出排列的所有组合。

  组合结果用out[MM][C]定义。MM是组合最多的上限,C是c的最大值

  直接在手机上写的,没经过调试,你当个算法看吧。其它部分你那个题我没理解,就不写了。

  这个问题应该可以分成两个部分。一,统计这组数字各个数字出现的次数,这个用stl来写会很简洁,《c++ primer plus》有个范例或直接网上找类似的例子。自己写,可以先给它们排个序,再挨个统计就好。二,求排列数,这考虑用穷举和递归,比如从某个数组取3个数,取第一个元素,不取第一个元素,分出两条路,在此基础上,取第二个元素,不取第二个元素,现在分出了四条路,依此类推往后,所有元素都考虑完。在递归的过程中,如果已取了三个数则输出一个结果,这条路就完结不再递归了,或元素个数不足也是完结不再递归。先看懂“背包问题”,这个问题也就解决了,并没有什么不可克制的困难stl本身就是模板,所以我推荐你用stl解决第一个问题,但这东西如果没学到家,就是满屏的出错信息。用的线下,当时stl还不成熟,坑太多你可以把这些数组存为一个文件,每行一个数组,用程序读取后存到stl的向量,到时再用集合和映射统计出每个元素的个数,这个例子书上有。排列时处理向量就可以了

本文链接:http://windsorflowers.net/diguixiangliang/166.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部