求高手帮忙,算法问题

hsmc_mcm 2012-06-11 03:58:52
问题描述:
1、有两个数组,分别为A和B,其中每个数组固定含有4个元素,分别是A1,A2,A3,A4,B1,B2,B3,B4
2、每次从A数组中取出一个元素,并确定该元素是否命中(已写好命中判断函数,设为XXX(e))【最多只会2个元素同时命中】
3、如果A元素中有命中,则记录该元素,假设A1命中,对A1进行记录,然后在B数组中找到任意1-2个命中,并分别记录B数组的值,且记录是在哪个A元素命中后该B元素才命中的,比如A1命中,在此基础上B2和B3命中,则B2和B3记录的同时,要求记录其前置条件为A1命中
4、在3的命中条件都成立后(假设3条件是A1命中后B3命中),再次从A数组中取值,但是此次要排除上面已经命中过的A元素(也就是A1),然后判断命中的A元素,并记录(假设此次A3命中),并且需要记录前置条件B命中元素(也就是B3)
5、4条件满足后,再次从B数组中取值,但是此次要排除上面已经命中过的B元素(也就是B3),然后判断命中的B元素,并记录(假设此次B2命中),并且需要记录前置条件A命中元素(也就是A3)
6、在5条件满足后,第三次从A数组中取值,但是此次要排除上面已经命中过的A元素(也就是A1和A3),然后判断命中的A元素,并记录(假设此次A4命中),并且需要记录前置条件B命中元素(也就是B2)
7、6条件满足后,第三次从B数组中取值,但是此次要排除上面已经命中过的B元素(也就是B3和B2),然后判断命中的B元素,并记录(假设此次B1命中),并且需要记录前置条件A命中元素(也就是A4)
8、最后剩余的A元素和B元素(按照上面描述,最终剩余的是A2和B4),将和上面几步中的最终排列结果组合成一个序列,即从A1命中开始,A1-B3-A3-B2-A4-B1-[A2-B4],即按顺序把命中的结果都组合起来,在最后拼接上最终剩余的A2和B4,得到一个最终序列
9、在3-7步骤里,任何一个步骤如果出现不命中,都会返回到3步骤,重新取另一个A元素进行计算,直到遍历完A数组为止

简化的描述就是,在A数组中任意取一个元素,如果命中,再从B数组中任意取一个元素,如果再命中,则再从A元素任意取一个元素(排除前面已经取得的),如果再命中,再从B数组取一个元素(排除前面已经取得的),依次类推,这个操作计算三次(A元素计算命中后再计算B元素命中,称为1次),如果1,2, 3次计算中出现任意一次全部未命中(包括A和B),该序列都不参与输出,如果3次计算都满足,则将该组合输出,并拼接A数组中剩余的最后一个元素和B数组中剩余的最后一个元素

示例:(括号内的是否代表是否命中)
1、A1(是)-B4(是)-A4(是)-B2(是)-A3(是)-B1(是)-[A2-B3] 符合条件,输出
2、A1(是)-B4(是)-A4(是)-B2(是)-A3(是)-B1(否) [B数组在第三次计算时出现未命中,如果B数组在第三次里全部不命中,此序列失效,不参与输出]
3、A1(是)-B4(是)-A4(否) [A数组在第二次计算时出现未命中,如果A数组在第二次里全部不命中,此序列失效,不参与输出]
4、其他情况可根据2和3类推

求高手指点应该如何做,想了几天了,想不出办法
...全文
60 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
showlie 2012-06-11
  • 打赏
  • 举报
回复
这问题描述真够长的,你应该把简单描述放在前面。。。
有个疑问:
A数组的命中判断函数为XXX(e),可你没说B数组的命中函数,听你的描述B的命中函数是跟A数组中所命中的值有关联,可描述中未说明。

其实,问题不要搞得这么复杂,简单的说就是遍历数组,获取符合要求的元素值。是这个理吗?
T[] matches = Array.FindAll<T>(A,Predicate<T> match);
一类资源描述:Java ASP系统毕业设计资源 1. 概述:该资源集中于Java与ASP结合的Web系统毕业设计。对于学生而言,它提供了从初步的构想到实际开发所需的全方位辅助材料,包括论文、设计文档和源代码等。 2. 包含内容: - 论文:涵盖了整个Java ASP Web系统的基础知识,设计意图、需概述、系统结构与设计哲学、相关技术的深入探索等。学生可以从论文中理解项目的全局构想和关键设计决策。 - 设计文档:详细梳理了系统的构建过程,包含需分析、系统框架设计、数据库规划、界面布局、功能模块划分等。此文档将引导学生逐步实现和调试系统。 - 源代码:提供Java与ASP整合的Web系统的完备代码,从前端界面代码(HTML、CSS、JavaScript)到后端的Java与ASP代码,再到数据库相关脚本。学生可以参考、修改或基于此代码进一步拓展。 - 辅助信息:包括其他与项目相关的技术文档、API手册、使用的第三方库的指导文档等,旨在帮助学生顺利解决技术上的难题。 3. 使用方法:建议学生首先浏览论文,了解系统的背景与设计目标。随后,依照设计文档进行具体的实现工作。当遇到技术问题时,可以查找辅助信息或参考源代码。源代码可以作为实现的起点或验证设计的有效性。 4. 注意事项:使用资源时,学生需确保遵守学校和课程的规定,防止直接复制粘贴,鼓励真正理解和原创。在借鉴源代码时,重要的是确保学生理解代码的逻辑和工作原理,而不仅仅是简单地复制。 希望这种资源描述能为您提供所需的信息。如有其他问题或需要更多的描述,请告诉我。
BMP magic是一个新型的加密软件,你可以用它把任何格式的windows文件存入到一幅24位真彩色的BMP图片中,神奇的是这幅内部藏有文件的图片的尺寸、大小不变! 在接下来的文字中您会了解到关于这个新版软件的强大功能与安全算法:在5.0B版本中:★支持jpg格式! 在本版本中,新加入了对jpg格式的自动转换——如果您打开的是一幅jpg图片,程序会自动转换为bmp格式来处理,不用事先再用其它工具转换。★可以隐藏比图片自身大若干倍的文件! 您要相信自己的眼睛:一幅200K的24位BMP,利用本程序成功地将一个1474.56K=1.44兆的WPS文件隐藏于其中!而且这还不是软件创的最高记录。★通过一系列优化算法,使隐藏文件的图片画质得到最大程序的提升! 一幅图片在最大限度上隐藏外部文件后,画质依然清晰,色彩过渡仍很平滑,基本不存在色块问题。这种算法理论上还未达到极限,后续版本中还将继续改进算法使画质进一步提升。★引领数据压缩领域新潮流! 目前最先进的压缩工具对文本文件的压缩率也不过90%,然而利用本软件将图片隐藏文件后再压缩,却有望突破这一“极限”压缩率!基于此种组合压缩法,阁下的160G海量硬盘是否可以多出几十G呢?★独创的255位动态密钥加密术让数据隐藏的更安全! 传统加密法采用常量作加密密钥不少解密高手正是利用这一普遍规律分析加密算法从而成功将所谓的“安全数据”解密。本软件自这一版本起采用最前沿的“动态密钥加密算法”使被加密的数据安全性能有了一个“质”的飞跃!也就是说,即使您用同一幅图片隐藏同一个文件,每次生成的新图片内部数据绝对是不一样的!★采用多种加密方式加密数据,无须担心数据传递过程的“中介者”! 新版软件中采用六种方式加密数据: 1.日期时间锁定; 2.外部软件锁定; 3.程序版本识别; 4.机器硬件锁定; 5.操作系统识别; 6.解密口令锁定。 这六种方式可以任意组合,现分别说明如下: A.采用“日期时间”限制时,您可以输入自1985-2099年间的任何时间(精确到秒),这样数据被加密后,解密者如不是在设定的时间企图解密将得不到正确的隐藏文件; B.采用外部软件锁定时,你可以选择你机器上有的任何一个文件做为锁定用程序,对方在解密时,必要性要用同样的文件来做为密匙才能解开里面的密文(你用的是什么文件,在“图文信息”中是查看不到的!)。 C.程序版本识别,也就是说,你用某一个版本的BMP magic加密了文件后,用其它版本的BMP magic是无法解开里面的密文的,换句话说,就是我们开发的程序,没有设置“向下兼容”; D.机器硬件锁定,你可以用你机器上的任何一个驱动器作为锁定密匙,包括硬盘逻辑分区,光盘,软盘,这样,除了在你的硬件环境中,别人将无法得到正确的加密文件; E.操作员识别,你选用“操作系统识别”后,就只能在相同的操作系统下解开密文,并且,在“图文信息”中不会标识出系统类型; F.采用“用户口令”限制时,您可以输入最长255位的密码(可以是您有办法输入其中的任何字符,当然有中文啦...)。★在图片中的任何添加数据(包括添加的文件头部信息)均用不同密钥加密,如不利用本软件根本提取不到任何有用的信息!这使数据的安全保密性得以极端的提高!★图片中可以像电子邮件一样附加“发送人”、“接收人”、“主题”及留言信息,使加密后的图片交互性更强,十二分的人性化设计!...... 共享软件时代,加密软件数不胜数,相信阁下在看到上面的文字后会在选择加密软件方面有一个成熟的理念,同时我们也相信,这个最新版的软件会带给您生活与工作上的方便与惊喜!********************************************************* 在您使用本软件之前,希望事先能与阁下达成下面的协议: 1.本软件纯属利用娱乐创意编写,参与软件编写的所有人员均不会对您由于使用本软件所造成的一切后果与损失负责! 2.本软件加密技术相当先进,属于“一次性加密”,故软件作者不会接受任何人员提出的“数据抢救”询,请阁下自我保重! 3.本软件的所有流行版本严禁任何组织或个人对其进行反编及商业炒作或以作者名义营利,但欢迎在不影响版权时传播与发布! 如果用户使用本软件,就表示默认上述许可,否则请销毁本软件! ********************************************************* 经测试,本软件在Window9x/Me/NT/2000/XP运行稳定并无不安全因素敬请放心使用并烦劳扩充测试,谢谢! 感谢众多朋友帮忙测试软件!

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧