带娃小妙招 篇五:一秒出一套数独题?Excel六步就搞定

2021-01-06 22:46:49 90点赞 233收藏 8评论

创作立场声明:本文系作者实践总结,欢迎交流。

背景

突然迷上了数独。不是喜欢求解,而是喜欢出题——一套题能让孩子做好半天。用Excel一秒出一套,这事半功倍的带娃技能要不要?

过程

数独的规则就是每行每列每个宫都由不重复的1~9组成。网上不少编程算法还有源码,但编程对于大多数网友来说还是有些门槛的。经过一翻搜索,我找到了一个另类的算法(链接在此,感谢原作者)!我们看看用Excel怎么实现他。注:步骤1~5全在Sheet2中,步骤6才回到Sheet1。

1. 预置

在Sheet2中预置一个完整的数独,百度搜一套就行。

一秒出一套数独题?Excel六步就搞定

2. 生成辅助列A

用rand()生成9个随机数(列A)。

  1. A12输入公式:=RAND()

  2. 拖拽至A20

一秒出一套数独题?Excel六步就搞定

3. 生成辅助列B

再用rank()排序就能生成1~9的随机序列(列B)。

  1. B12输入公式:=RANK.EQ(A12,$A$12:$A$20)

  2. 拖拽至B20

一秒出一套数独题?Excel六步就搞定

4. 生成辅助列C

在序列B的基础上生成一个“下一个数字”的序列C。

  1. C12输入公式:=B13

  2. 拖拽至C19

  3. C20输入公式:=B12

一秒出一套数独题?Excel六步就搞定

5. 数字替换

预置数独中的每一个数n,在序列B中找到n(如B18),则序列C中相同位置的数(如C18)就是生成新数独的值。对预置数独所有数字替换一遍就可以生成一个新的数独。

  1. 在L2输入公式:=VLOOKUP(A2,$B$12:$C$20,2,0)

  2. 拖拽至L10

  3. 拖拽至T10

一秒出一套数独题?Excel六步就搞定

用格式刷刷一下,再按F9刷新,是不是有点儿样子啦?别急,在A1格输入5作为遮蔽比例的控制变量(大体精度10%,B1可以填入文字注释以免以后忘记怎么用)。经过试验,感觉显示四、五成的数效果还可以(也就是参数选择5或者6比较合适)。至此,Sheet2的工作完毕。

一秒出一套数独题?Excel六步就搞定

6. 遮蔽

最后一步,将新数独的部分数字遮蔽就大功告成了。下列操作切换回Sheet1。

  1. 在A1输入公式:=IF(RAND()*10>Sheet2!$A$1,Sheet2!L2,"")

  2. 拖拽至A9

  3. 拖拽至I9


一秒出一套数独题?Excel六步就搞定

调整一下边框样式,接下来就可以按F9爽啦!如果打印出来,一页可以放好几个(就像题图一样),够娃做会儿的了。

一秒出一套数独题?Excel六步就搞定

后记

本方法仅供消遣,并不能确保解的唯一性。欢迎探讨。


展开 收起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

249元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

209元起

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

275元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

208元起

Microsoft 微软 价保到618 微软office365办公软件microsoft365

Microsoft 微软 价保到618 微软office365办公软件microsoft365

235元起

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

235元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

209元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

329元起

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

249元起

Microsoft 微软 Office2016小型企业版 MAC专用

Microsoft 微软 Office2016小型企业版 MAC专用

149元起

微软在线发 microsoft365家庭版续费新订office365密钥OfficePLUS会员 Microsoft365家庭版 30月 密钥-在线直发咚咚聊天窗口领取

微软在线发 microsoft365家庭版续费新订office365密钥OfficePLUS会员 Microsoft365家庭版 30月 密钥-在线直发咚咚聊天窗口领取

528元起

Microsoft 微软 Office 2019 家庭学生版 密钥

Microsoft 微软 Office 2019 家庭学生版 密钥

159元起

Microsoft 微软 365家庭版个人版正版密钥Office365永久激活2021Mac

Microsoft 微软 365家庭版个人版正版密钥Office365永久激活2021Mac

暂无报价

Microsoft 微软 MAC专用办公软件office2019永久版

Microsoft 微软 MAC专用办公软件office2019永久版

259元起

Microsoft 微软 618活动开始到手15元/月 office365个人版续费新订microsoft365个

Microsoft 微软 618活动开始到手15元/月 office365个人版续费新订microsoft365个

225元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起
8评论

  • 精彩
  • 最新
  • 点赞,对Excel的公式了解的很透彻呀

    校验提示文案

    提交
    感谢欣赏!都是平时的一点点积累。分享出来,希望有人一切探讨。

    校验提示文案

    提交
    收起所有回复
  • 我错了 这个是结果反推 一定是有答案的 不用较准

    校验提示文案

    提交
    感谢老哥细心分析!结果肯定有,但不一定只有一个。

    校验提示文案

    提交
    收起所有回复
  • 取随机数用round配合randbetween就行了,不需要辅助列

    校验提示文案

    提交
    辅助数列是为了取得不重复的1-9。这两个函数怎样组合能实现不重复?请赐教。

    校验提示文案

    提交
    收起所有回复
  • 加一个自动校准 算不出来的直接略过

    校验提示文案

    提交
  • 我用专用的数独游戏机

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
233
扫一下,分享更方便,购买更轻松