ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Aphee

[求助] 数据分布——VBA求解

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-18 15:22 | 显示全部楼层
徐文祝 发表于 2023-1-17 14:36
这个主要是算法,解决了算法,VBA写出来倒是不难。主要是我想不出好的算法。

我整理了一下解题思路,不知道属不属于你所说的算法范畴,你可以参考参考附件中的思路。

数据分布——求解算法.rar

32.4 KB, 下载次数: 13

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-18 15:30 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
micch 发表于 2023-1-17 12:23
先证明有结果吧,组合可不止万种,多少亿都不好说。也许证明下来不存在可能的组合

结果或许有上万或更多种
但仅需要一种结果即可
而不是需要所有结果都算出
然后刚刚上传的解题思路附件
可将可能的上万种算法简化很多
比如简化到几百种
可以参看一下

TA的精华主题

TA的得分主题

发表于 2023-1-18 16:00 | 显示全部楼层
Aphee 发表于 2023-1-18 15:22
我整理了一下解题思路,不知道属不属于你所说的算法范畴,你可以参考参考附件中的思路。

规则已经懂了,怎么编程实现,还是没有好的思路。如果想出好的思路,再回复楼主。

TA的精华主题

TA的得分主题

发表于 2023-1-19 18:08 | 显示全部楼层
请见附件。

数据分布—VBA求解V2.rar

64.8 KB, 下载次数: 12

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-19 21:10 | 显示全部楼层

师傅,貌似不正确吖,按按钮数据没填完整,并且有好多结果,按一次按钮就一次结果
C:\Users\Administrator\Desktop\L\分布求解2.png
分布求解2.png

TA的精华主题

TA的得分主题

发表于 2023-1-20 10:33 | 显示全部楼层
原来的要求是有一行满6个就结束的。而且,按你的几个条件都要满足的话,也只能填到6个列,第7列以后都不能满足要求的。因为2列相交只有7个,3列相交只有2个。
我这个第一列是随机填的,其它的列按照条件来填的。
6个列的位置也是随机的,如果不需要随机,也可以从第一列开始依次填到第六列。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-20 11:44 | 显示全部楼层
蓝桥玄霜 发表于 2023-1-20 10:33
原来的要求是有一行满6个就结束的。而且,按你的几个条件都要满足的话,也只能填到6个列,第7列以后都不能 ...

也许最开始还没说太明白吧,实际所需条件如下:
1.【每列21】每列填满21个对应字母
2.【每行6】每行填满6个对应字母
3.【2相交】任意2个字母相交7次
4.【3相交】任意3个字母相交2次
5.【4相交】任意4个字母相交1次或者0次(若可能存在无解的情况,可以舍弃此条件)

因求解过程存在一定探索性,当不能同时满足以上5条件时,则可以求解最优结果/近似结果,而非最正确的结果
比如:根据从a-p依次填写原则,在尽可能按abc……字母先后顺序,先满足前面字母的同时,可以只满足前4个条件,即:可以舍去第5个必须条件,以便得出最优结果。

TA的精华主题

TA的得分主题

发表于 2023-1-20 21:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 蓝桥玄霜 于 2023-1-20 22:15 编辑

第7列.jpg 这个问题有什么实际应用的例子吗?
根据条件:任意3列相交5个;任意2列相交7个
到第7列时,满足这2个条件需要22个g,大于每列21个了,所以只能填到6个列。

TA的精华主题

TA的得分主题

发表于 2023-1-20 22:59 | 显示全部楼层
如果每行必须满足6个,那么这一条已经表示第5个条件成立,即【4相交】一定成立了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-20 23:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有实际例子,只不过数据量比本帖子里的数据量少了一半多,具体可以参看附件。

这个问题有什么实际应用的例子吗?
根据条件:任意3列相交5个;任意2列相交7个
到第7列时,满足这2个条件需要22个g,大于每列21个了,所以只能填到6个列。

数据分布—求解算法—附实例.rar

38.5 KB, 下载次数: 9

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 04:47 , Processed in 0.031624 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表