ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 电脑猜数字xAyB

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-26 14:11 | 显示全部楼层
killq 发表于 2019-6-26 13:40
好吧,既然玩暴力,那么我也出个吧,不完善,比如重复数字没有判断,再比如没有对不停的点“下一步”进行限 ...

有bug,少考虑了末位为更小值的情况,懒得加判断语句了,放弃

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-26 15:22 | 显示全部楼层
Moneky 发表于 2019-6-26 13:15
7楼附件使用说明:
点击 [重开] 开始新的游戏,电脑会随便猜一个数,然后你需要手动设置 ?A?B,设定好后, ...

mkAnss 过程 ,发现个笔误:a=1 to 9
  For a = 0 To 9
        For b = 0 To 9

TA的精华主题

TA的得分主题

发表于 2019-6-26 16:04 | 显示全部楼层
zopey 发表于 2019-6-26 15:22
mkAnss 过程 ,发现个笔误:a=1 to 9
  For a = 0 To 9
        For b = 0 To 9

首位不为零,且数字不重复。不是笔误。
最早发的代码中有个cstr应该为clng,这个才是笔误

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-26 17:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
778.JPG

8 楼附件 上改的随机猜数 ,
遇到狡猾的狐狸 一般要7 -8次 。(次数偏多)

电脑猜数字2.zip (20.95 KB, 下载次数: 13)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-30 11:10 | 显示全部楼层
完成作品,  请按步骤 操作。第一个数字 筛选计算较慢。

3344.jpg

文曲星猜数字(辅助).rar (150.46 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-30 11:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub 按钮8_Click()
  2. Range("L2:AB9999").ClearContents

  3. k0 = [j1].End(4).Row - 1
  4. If k0 <= 1 Then Exit Sub
  5. arr = [j2].Resize(k0, 1)

  6. k = 0
  7. ReDim brr(1 To 5040, 0 To 14)
  8. dic.RemoveAll

  9. For a = 0 To 6
  10. For b = a + 1 To 7
  11. For c = b + 1 To 8
  12. For d = c + 1 To 9
  13.     s = a & b & c & d
  14.     Call dgQPL("", s, 4)
  15. Next d, c, b, a

  16. [l2].Resize(dic.Count, 2) = Application.Transpose(Array(dic.Keys, dic.Items))
  17. [n2].Resize(5040, 15) = brr
  18. [L1].Resize(5041, 17).Sort key1:=Range("M1"), order1:=xlAscending, Header:=xlGuess

  19. MsgBox "建议:" & Format([l2], "0000")
  20. [l2].Select
  21. End Sub


  22. Sub dgQPL(x, y, j)
  23.     Dim cr(0 To 14)
  24.     If j = 1 Then
  25.          k = k + 1
  26.          For m = 1 To k0
  27.             ts = compare(Format(arr(m, 1), "0000"), x & y)
  28.             cr(ts) = cr(ts) + 1
  29.             brr(k, ts) = brr(k, ts) + 1
  30.          Next
  31.          dic(x & y) = Application.Max(cr)
  32.     Else
  33.         For i = 1 To j
  34.             Call dgQPL(x & Mid(y, i, 1), Left(y, i - 1) & Right(y, j - i), j - 1)
  35.         Next
  36.     End If
  37. End Sub

  38. Function compare(a, b)
  39. qa = 0: qb = 0
  40. For i = 1 To 4
  41. For j = 1 To 4
  42.     If Mid(a, i, 1) = Mid(b, j, 1) Then
  43.        If i = j Then qa = qa + 1 Else qb = qb + 1
  44.        Exit For
  45.     End If
  46. Next
  47. Next

  48. If qa = 0 Or qa = 3 Then
  49.    compare = qa * 4 + qb
  50. ElseIf qa = 1 Or qa = 2 Then
  51.    compare = qa * 4 + qb + 1
  52. ElseIf qa = 4 Then
  53.    compare = 14
  54. End If
  55. End Function
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-30 19:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
3A1B 是 不符合逻辑的判断,实际不会发生。据此修正

猜数字辅助V2.0.rar (250.31 KB, 下载次数: 29)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 22:29 , Processed in 0.043156 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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