能否用vba穷举开关 是否,看能否使原数在左右列里的加减乘除得到与最终输出左和最终输出右结果相同
3条回答 默认 最新
- 梦幻精灵_cq 2023-08-07 04:49关注
- 您的数据
转换成csv文本就是
开关,左,右 否,NAN,+10 否,NAN,-60 否,-60,+80 是,-20,NAN 否,*2,-20 否*2,+60 否,-10,*2 是,*2,NAN
遍历处理开关为“是的行”,就可以得出左、右结果
Python 代码
#!/sur/bin/nve python # coding: utf-8 num = 240 s = '''开关,左,右 否,NAN,+10 否,NAN,-60 否,-60,+80 是,-20,NAN 否,*2,-20 否*2,+60 否,-10,*2 是,*2,NAN''' s_yes = [i.split(',')[1:] for i in s.split('\n') if i[0] == '是'] print('\n开关“是”的数据:\n', s_yes) left = right = num for i in s_yes: l, r = i left = left if l == 'NAN' else eval(f"{left}{l}") right = right if r == 'NAN' else right+eval(f"{right}{r}") print(f"\n原数:{num};左 -> {left},右 -> {right}")
代码运行效果截屏图片
解决 无用评论 打赏 举报 编辑记录 - 您的数据
关注 【以下回答由 GPT 生成】
为了解决这个问题,我们需要从使用VBA编写一个函数开始,这个函数将会接收原始数值作为参数,并通过左列和右列的加减乘除操作得到最终输出左和最终输出右结果相同的解法。
下面是一个基本的VBA函数的框架,用于处理这个问题:
Function FindExhaustiveSolutions(value As Double) As String ' 实现代码 ' 返回结果 FindExhaustiveSolutions = "结果" End Function
然后,我们可以在这个函数中使用循环来进行穷举计算。下面是一个简单的示例,展示了如何在VBA中实现穷举解法:
Function FindExhaustiveSolutions(value As Double) As String Dim leftResult As Double Dim rightResult As Double Dim i As Double, j As Double For i = 1 To 100 ' 循环从1到100 For j = 1 To 100 ' 循环从1到100 ' 计算左右列的加减乘除操作 leftResult = i + j rightResult = i * j ' 检查结果是否相同 If leftResult = rightResult Then ' 如果结果相同,返回解法 FindExhaustiveSolutions = "原始值为 " & CStr(value) & ",解法为 " & CStr(i) & "和" & CStr(j) Exit Function ' 返回找到的第一个解法 End If Next j Next i ' 如果没有找到解法,返回提示信息 FindExhaustiveSolutions = "未找到解法" End Function
这个示例中的穷举解法是通过两个嵌套的循环来实现的。每次循环,我们计算左列和右列的加减乘除操作,并比较它们的结果是否相同。如果找到了解法,函数将返回解法信息。如果循环结束后仍然没有找到解法,函数将返回一个提示信息。
你可以将这个函数放在VBA宏中,然后在Excel中调用宏来解决问题。例如,你可以在一个单元格中输入函数调用表达式,比如
=FindExhaustiveSolutions(10)
,然后按下Enter键执行函数并显示结果。希望这些提示可以帮助你使用VBA语言编写代码解决穷举问题。如果有任何进一步的问题,请随时提问。
【相关推荐】
- 这个问题的回答你可以参考下: https://ask.csdn.net/questions/751733
- 这篇博客你也可以参考下:VBA依次打开当前文件夹中所有的工作簿并且向里面写入内容
- 您还可以看一下 陈表达老师的VBA基础编程开发课程课程中的 第1集-VBA环境及介绍(启用宏)小节, 巩固相关知识点
- 除此之外, 这篇博客: VBA,如何获得不重复随机数(实现不放回随机)的几种方法------ 未完成(还想补充一些字典的方法等)---中的 4.3 网上看到有人用字典的方法,比我的简单 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报- 薛定谔_51 2023-09-04 12:46关注解决 无用评论 打赏 举报
悬赏问题
- ¥15 MC9S12XS128单片机实验
- ¥15 失败的github程序安装
- ¥15 WSL上下载的joern在windows怎么用?
- ¥15 jetson nano4GB
- ¥15 电脑回复出厂设置,重装过程报错提示,求解决方案Windows 无法分析或处理无人参与应答文件 [C:\WINDOWS\Panther\unattend.xml,如何解决?
- ¥15 进入lighttools中的UDOP编辑器的方法
- ¥15 求Gen6d训练数据集
- ¥20 liunx中winscp中可以登入ftp,但是不能登入sftp,如何解决
- ¥15 lighttools的光学属性自定义的用法流程
- ¥15 uni-app动态修改推荐页内容时报错