## 题记
日期:2022-12-01 周四 21:00-23:40
主题:小白慢爬营第50飞书会议
主持:mumu
参会:11人
爱梅、鹅总、坤琳、欣燃、青群、德菊、志全、jimmy、珉新、汇山。
## 代码拆解-基础题
\[ 题目 \]
> “
>
> 从1000个整数里随机提取一个,并判断它是奇数还是偶数,最后打印如下:
> 332 是偶数
> 137 是奇数
**\[ 知识点\]**
基础题目的要求是生成随机整数,而随机整数用的基本都是random()函数。
所以,需要去学习并了解random()函数的用法。
**\[ 查阅搜索 \]**
**建议:优先官方文档,因为更全面完整,,百度或者谷歌搜索虽然可能更快找到答案,但是得到的都是零散的知识点,不利于搭建知识的体系和系统化。**
**\[ 函数 \]**
通过查阅官方文档,会发现整数用函数有两个可以用。
分别是random.randomrange()和random.randint()函数。
两个函数的区别是randomrange()含左不含右,而randint()同时包含两侧。
**\[ 具体代码 \]**
因文章篇幅关系,具体代码不放在这里,想要具体代码的可以看小白群聊天记录或者联系我索取。
## 代码拆解-附加题
**\[ 附加题 \]**
> “
>
> 用代码计算出多少人喝酒。
> 一帮兄弟聚在一起喝酒,
> 第一轮喝了一瓶,几个人喝倒了,
> 第二轮又喝了一瓶,又喝倒了几个,
> 第三轮又喝了一瓶,全倒下了,
> 最后倒下的兄弟说:我正好喝了一瓶。
**请用代码计算出一共几个人喝酒?不要求逻辑严谨,计算出人数即可。**
**\[解题思路\]**
这道题目,乍一拿到手,感觉完全无从下手,找不到突破点。
唯一能确定的因素就是每一轮的喝酒量是1瓶,最后一个倒下的人,三轮下来一共喝了1瓶。
可是,仅凭这两个确定语句,感觉完全无法确定总的喝酒人数和每轮的喝酒人数。
最后,在志全的提醒下,我们才意识到:
**这个题目要破解,不能根据实际情况来,而是要假定每个人的喝酒量相同,即每一轮喝酒的人均分1瓶酒。**
只有限定了这个前提条件,这个代码才有了切入点。
在这个逻辑下,又多了1个确定条件,即:每一轮喝酒人的喝酒量都等于1/喝酒人数。
**\[两种思维\]**
思路有了,但是如何把这些条件落实到代码上,提供一种计算机可以处理的模式。
在会议中, 我们提到了两种思维。
**一种是数学思维,一种是计算机思维。**
什么是数学思维,就是我们会下意识的根据题目中的各类条件列公式、找规律、去建模,然后去测试验证。可是这个思维,属于人类的语言和思考模式。
**而对于计算机来说,它更擅长的是计算机算力,即对于可能的结果进行批量重复的无穷举的计算,它更擅长。如果用一个简单的类比,就是你给他一整个沙漠,给他一个判定金子的条件,让它在茫茫的沙海中淘金,这个对它是小菜一碟。**
但如果要把我们人类的逻辑思维转换成计算机语言,让它去执行,不是它难,而是这种转换很难。
我们好几个参会人,刚开始都试图使用数学思维,发现不知道怎么用代码实现。
而最后,看到志全写出的代码,我们才意识到:**要用计算机能听懂的擅长的语言去跟它沟通交流。**
这也是,我今天这次会议最大的收获。
所以,回到题目。
如果用计算机思维来处理这个题目的话,就要把所有可能的组合给到计算机,然后再给到它判定的条件,让计算机把符合条件的答案筛选打印出来。
通过这个思维,可以想到调用itertools的各种函数。
比如用笛卡尔乘积product函数()、combinations()等来生成喝酒人数的可能组合,然后再加上条件判断的公式,从而计算出答案。

## 下周待讨论题目
主持人mumu最后有几个发问,引起了我们所有人的讨论和思考。
当前会议模式,虽然大家共同解题、讨论,可以看到别人的解题思路,也能从中互相借鉴思考。
但是题目的出题比较随机,难度对不同的人来说也不一样,很多人无法有效参与。
所以,他提出几个开放性的问题,即
> “
>
> 1-会议应该怎么开,才能帮助到群里大部分的人,并保持群的可持续性发展?
>
> 2-怎么更好的搭建一个拉帮带的群环境、同时又兼顾新人与共学的目的?
这个问题,我们尚未得出清晰的结论,待下周会议进行开放性探讨,也期待你的参与。
我是**爱梅**,下期见。