Category: 程序设计

随机数独游戏的算法设计 (Sudoku)

给定一个数独(Sudoku), 我们可以使用深度优先搜索算法(DFS), 迭代加深搜索算法(IDS)或广度优先搜索算法(BFS)来寻找可能的解. 反过来, 如果我们要设计一个算法来生成有效的数独, 我们需要澄清以下问题: 生成的数独(Sudoku)必须有可解状态吗? 是的 生成的数独(Sudoku)有多个解吗? 我们可以假设返回的Suduoku只有1个唯一解 生成的数独(Sudoku)的找解难度? 我们可以为此设置一个参数: 简单, 中等或困难 一共有6.671×10^21个有效的数独状态, 如果我们忽略旋转, 镜像状态等重复的状态, 这个数字就降到了5.4×10^9个状态. 我们可以随机生成一个由数字1-9填充的矩阵, 并检查它是否是有效的数独, 但这非常低效, 因为生成的矩阵极有可能不是有效的数独. 设计一个随机数独的算法 为了设计一个有效的算法, 生成一个随机的有效数独, 我们可以采用以下算法: 使用回溯(深度优先搜索)算法来生成一个具有随机性的有效完整数独. 例如, 我们可以随机选择数字, …

整合 ChatGPT Prompt AI到 STEEM 区块链上!

我现在是 STEEM 的 TOP 20 见证人, 高处不胜寒, 感觉不能辜负大家的期待, 得做些工作. ChatGPT 从2月份就爆火以来, 各种应用接入 ChatGPT 的API, 不过目前 ChatGPT API 还是基于 3.5版本的. 我想着整个机器人也不是难事(以前已经整过几个了), 在看视频的同时就写些代码就搞定了, 顺便还重构了一下 以便更好同时支持其它的机器人. 现在, 在STEEM 区块链上我们可以在任意帖子(暂不支持帖子本身)下回复 !ask 加个空格+你要问的问题. 不过大约需要 …

谷歌面试题: 迷宫随机生成算法

据说这个是谷歌 Google 的第一轮面试题. 一般这种题目就是: 设计一个迷宫算法 (Design a Maze). 面试中应该先问清楚需求 (Ask Clarifying Questions): 迷宫需要有几条出路? (假定至少1条), 多大的迷宫? 多复杂的迷宫等等. 最容易想到的就是随机生成1和0的地图, 其中1是墙, 0是空路, 不过这种方法生成随机的效率实在是太低, 你可以跑了半天也无法生成一个有效的迷宫, 我们假定有效的迷宫是至少含一条路径. def maze(width, height): m = None while …

Python创建x.509标准密钥代码示例

用苹果公钥创建一个x.509标准的公钥怎么做? 要创建一个X.509标准的公钥, 首先需要获取苹果公钥. 可以从苹果开发者网站上获取苹果公钥, 然后使用OpenSSL工具将其转换为X.509标准的公钥. 具体步骤如下: 从苹果开发者网站上下载苹果公钥, 并将其保存为.pem格式的文件. 使用OpenSSL工具将.pem格式的文件转换为X.509标准的公钥, 命令如下: openssl x509 -in apple.pem -out apple.cer -outform DER 将转换后的X.509标准的公钥保存为.cer格式的文件. Python创建x.509标准密钥代码示例 以下是使用Python创建X.509标准密钥的示例代码: from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization …

懒人编程神器: Copilot

Copilot 是微软 github 出的一款编程神器, 基于大数据+机器学习的工具. 现在可以在 Visual Studio 和 Visual Studio Code 上安装. Copilot 很神奇, 它好像知道我接下来要敲什么代码或者是注释. 甚至我敲注释, 它都知道我要写什么, 写完注释就提示我代码是不是要这么写. 真是懒人编程好助手. 甚至什么都不写, 创建一个文件名, 就能猜出我要干嘛. 可以刷题, 写个 Two Sum, 自动补全算法, Copy/Paste …

教媳妇编程: 学编程最好的方法就是抄代码

我学编程的时候老师就告诉我最好最快的方法就是抄代码, 不管理不理解, 先抄个几遍, 先上手敲几遍有个手感. 当时我学的是 Turbo Pascal 7.0, 高中竞赛编程指定语言, 老师让我抄(敲) 代码, 当时我记得就是抄了些排序的算法, 很快, 对于编程 对于Pascal的语法 有了基本的感觉和了解. 最近在 B站 和 油管频道教媳妇编程, 教了几课后发现媳妇理解得不深, 媳妇说好难, 媳妇说我说的算法她懂但是我敲代码的时候她就一脸懵逼了. 我才意识到编程也是有点小门槛的, 对于学商的媳妇小白来说, 确实入门有点难度, 那就从抄代码开始, 每天抄一小段代码来加深理解. 每周讲一课, …

批量把MOV视频文件转换成MP4

MOV 视频很大, 每次教娃视频如果是在 4k 60fps 下 十来分钟就得1个多G. 我手机上拍完之后用 Dropbox 同步到电脑上, 很快硬盘空间就不太够了. 我们可以用以下脚本批量把MOV视频转换成MP4/MPEG. 脚本是基于开源的视频音频解码程序 https://ffmpeg.org/ BASH 脚本批量把MOV视频压缩转换成MP4 首先, 我们需要扫描当前目录及子目录下的MOV文件, 然后调用 ffmpeg 把每个文件依次转换成MP4. 转换后留5秒时间间隔然后删除原MOV文件. #!/bin/bash process() { local mov="$1" echo Processing …