粉丝2827获赞3716

很多人都玩过算二十四点游戏,从一到十三中选择四个数字,数字可重复用加减、乘除和括号组合起来,算出二十四点。今天我想结合 ai 编程 和大家一起探讨这个游戏,找到通用解法以及量化每一道题的难度。视频有一点长,喜欢的朋友可以先收藏。首先解决第一个问题,一共有多少种不同的组合?一副牌去掉大小王后,五十二张 分四种花色,每种花色十三张,代表从一到十三十三种可能 根据乘法原则,一共十三的四次方,但是这样不对,因为四张牌是有顺序的,所以要用组合来算。从五十二张牌中选择四张的组合也不对,因为有重复的牌。如果四张牌的数字各不相同, 就是从十个元素中选择四个的组合数 c 十四。但是现在允许重复,所以更复杂一点, 可重复的组合数有专门的公式,从十三张牌中可重复选择四张,等价于从十六张牌中选择四张。 c 十六四,结果是一千八百二十种。双二十四点游戏总共有一千八百二十种不同的数字组合。我们把清单列出来, excel 包中有 combination with replacement 的 方法,可以列出所有具体的组合,导出到 excel 看一下, 确实是一千八百二十条数据,每一条数据就是一道题。下一步我们对具体一道题求解,对于具体一道题,例如四 一八七四乘以八,减去七,再减一,等于二十四。我们来分析一下求解的过程。输入是四个数字,四个数字的全排列是四的阶层,共二十四种排法,三个运算符, 每个计算符可以使加减乘除四种可能三的四次方,但是优先级和括号很难处理,这里可以换个思路,每一次都是拿两个数字进行计算,计算完再放回去算三次,这样把计算过程表达成一棵树。 有过数据结构的人肯定能想到,用波浪表示法可以避免括号和优先级问题,变成为把四个数字和三个计算符放到七个位置上,有以下限制,位置一和位置二必须是数字,最后一个位置必须是计算符, 剩下四个位置要放两个数字。两个运算符共有六种可能,最后这种结构不能计算,有效结构只有五种,分别对应的计算数是这样,所以一共有五乘以四的阶层,乘以四的三次方,共一千五百三十六种可能。 思路决定后,编程比较简单, ai 可以 很快生成出来。运行一下,找几道典型的题,测试通过后对所有的题计算一遍,结果还是导出到 excel。 一 共一千八百二十道题,四百五十八道题,无解,约占百分之二十五,有一百四十七道题,只有一种解法, 约占百分之八。我们对题的难度进行评估,根据预算符预算结构中间结果的复杂度,我制定了一个评分规则,对每一 种结法进行评分。如果一道题有多种结法,选结法评分最小的作为这道题的评分。最难的二十四道题是这些,挑战一下吧。总结一下,我们探讨了算二十四点游戏算二十四点的经验是隐性知识,这个探索过程是把隐性知识转化为显性知识,然后变成可计算的模型, 最后达到可以从整体上进行评估。有很多隐性知识在转化过程中会被抛弃,这也是 ai 应用的常见过程。 核心是隐性知识显性化,然后建模。其核心思路不是让 ai 凭空创造知识,而是帮助我们把已有的经验和规律提炼出来,建立可计算的模型,进而解决更复杂的问题。常见的领域模型有投资决策估值模型、资本资产定价模型、 量力分析、物流成本分析等。每个专业领域都有特定的专业知识,把这些专业知识利用起来,是 ai 应用阶段最有效的方法。谢谢,下期再见!

大家好,今天教你们字母串相加,首先还是定义变量 a 等于 hello, 然后再定义一个变量,定义为 word, 然后 print 里面 t a 加 b, 这边看到你输入的结果了,这边你也可以随便自定义变量里面的字母, 你也可以修改为双引号, 换成双引号还是一样会打印出来,你学废了吗?

这一道题目呢叫做值日啊,这道题目稍微有一点复杂的啊,需要你从这个数学问题中去分析出来,他到底让我算什么 啊?首先我们看题目啊,小杨和小红是值日生,负责打扫教室,小杨每 m 天值日一次,小红每 n 天值日一次,他们两个一起值日,请问至少多少天后他们会再次在同一天值日? 那我们先先把这个输入先做一下啊, n 等于 int input, 这个是 m 啊, m 是 小羊的好吧,这个是小羊了,小羊的值日期, 然后这个呢,是小红的 值日期,那么我们来看看这个规则啊。规则,那么小羊值日期是每 m 先值一次,那么也就是 m 二 m 三 m, 对 吧?啊,以此类推,那小红呢?也就是 n 啊, n 二 n 三 n, 对吧?啊,以此类推。好,那么他们在什么时候会交会,会在同一天呢?那我们就要去看,其实你看发现这个规则了没,他其实就是一个倍数问题啊,其实就是一个倍数问题,在某一天,他们两个能同时去除尽我们 m 和 n, 那么这一天就是他们值日的周期,所以他这个期其实是来让我们算公倍数的。公倍数啊,如果你按照数学思维来算的话,他是让我们求最小公倍数啊,最小公倍数,那如果你以数学思维来算的话,那你就要去看我们这个最小公倍数的公式啊, lcm, 这是最小公倍数,对吧?等于,那应该是 m 乘 n, m 乘 n, 比上 公约数 gcd 啊, gcd 的 m 和 n 啊,这是公倍数的公式,但是我们这个是编程问题啊,编程问题, 他问我多少天后,我们完全可以按照程序思维来解决他啊,怎么来做呢?他问多少天后,那我就哎,一个个去算呗,这就是我们之前说的便利的这个思路啊,便利思路美举啊, for i in range 这里。润姐,哎,我们知道多少天吗?啊?注意这一点啊,我们知道多少天吗?不知道,对吧?不知道多少天,我们之前一直很多问题都是用负循环来做的,但是问题是这个多少天我不知道,我不知道次数,我就没办法用负循环呀, 对不对?所以我们这在这个问题上我们就要考虑到用另外一种循环了,叫 will will true, 他是一种按条件循环的结束啊,按条件循环,当这个循环条件为真的时候,我会一直做循环啊,一直做循环,好,现在我们要天数进行判断啊,我先看看一符合不符合我们条件,二符合不符合我们的条件。这个条件呢,其实就是除以 m 和 n, 看看有没有余数就行。 问题是我去让谁啊?我这里应该写的是有一个东西啊,有一个东西去取于 m 等于零,对吧?并且这个东西呢是取 n 等于零。好,问题,这个东西是谁?这个东西呢?应该是以我,我从一开始算,然后一符合不符合,二符合不符合,三符合不符合, 但是我没有这个东西,怎么做呢?我们来创建一个变量, i 等于一,然后从第一天开始。好吧,注意它们间隔是从第一天开始的啊,那这里就变成了一个 i 去 m, 然后 i 去 n, 对 吧?如果符合条件,那么这个 i 也就是我多少天以后的结果。我算好啊,因为你现在是个死循环啊,算好之后把它结束掉, 算完把它结束掉啊,如果没有算完,你需要注意一下,因为我们这个变量呢,它一直在往上增加啊,你不能一直是一啊,对吧?它得往上增加呀,所以如果没算完,让 i 加等于一, 好,让 i 加等于一,这就是我们整个思路的逻辑啊,哎,然后我们来输出啊,输出一下应该输出我们的啊,这不用输出了,因为我输出过了,是吧,还想着输出呢,不输出了啊,来运行测试一下结果啊,四 六应该是十二天啊,输入量是四六,结果应该是十二天啊,这个就是这道题目啊, 最小公倍数的问题。但是这个是我们用程序来解啊,不是数学问题来解,程序来解,当然你必须要知道 他在数学中是如何来做这个最小公倍数的运算的,这个公式你必须要了解,什么时候是最小公倍数,我们是需要自己分析出来的。好吧,这就是这道题目啊。

让我们一起学习 python, 我 学习如何编写您的第一个 python 代码。 python 是 最简单的编程语言之一。让我们细细简单的东西, print hello python 开始并运行。它 现在创建了你的第一个 python 程序。现在让我们看看变量保存信息的小容器,年龄等于二十。打印我的名字年龄好了,你现在已经会写 python 代码了。

好,我们继续来看我们的字母串类型, string 好, string 存储的是字母串啊,一串字母,比如说 name 变量存了一串字母引号引起来的这一串字母,字母串的,所以是从零开始的,大家注意这一串数据啊,给它 他编号的话,是从零开始编,不是从一开始啊,这常常是一个考点,这里是从零到七给他编吧。那如果我输出内幕一的话,注意是 m 而不是 a。 好, 后边还有一句,切片前闭后开,那是啥意思呢?我们一块来看一下。 d 等于这一个字母串,然后输出 d, 那 肯定是把这一串全部输出没有问题,然后输出 d 一。 大家来看编号从零开始的话,零一那一号字母对应的是 w, 所以 应该是输出 w 的 没有问题,然后输出 d 一 到三是它的切片,也叫做,所以啊,就是它的下标都可以。 好,一到三一二三,那就是说 w e 八。但是刚刚我们说过一个原则是前闭后开,也就是说 前边这个边界是包含的,后边这个边界是开放的,他是取不到的,所以我们知道只能取到一二位,所以只能到 w 和 e, 所以 这个输出的答案是 w e。 我 们来运行看一下, 来看全部的啊, d 一 是 w, d 一 到三是 w e。 关于数据类型的内容,大家有疑问的可以给崔老师留言。
