2020-04
8

为什么会被小海龟折磨

By xrspook @ 8:44:09 归类于: 烂日记

先画一个正方形,然后画一个正多边形,接着画一个圆形,最后画一个圆弧。从思路上说,再简单不过了,但实际上实施起来的时候,我还是花费了一点心思,但这些东西跟之后的用圆弧画出三个花朵比起来,我算是轻而易举就完成了的任务。后来的花朵之所以耗费了好几个小时才终于搞定,倒不是因为问题本身有多难,而是因为其实我没想通那些数学上的问题。我要画一朵花,花是由花瓣组成的。我画的那朵花是规则结构。那么画完一个花瓣到下一个花瓣的时候,角度我应该如何确定呢?这个问题很简单,但实际上我却在这里兜了无数个圈。我在那里瞎猜,所以很浪费时间。有无数次,我想直接去看答案了,但是我还是控制住了自己。当我终于画出一朵花,并在里面测试无论花瓣是胖是瘦,是多是少,我都能画出来以后,接下来我考虑的是如何一次性在一个面板上画出三朵花。画出一朵跟一次性画出三朵,其实已经非常接近了,但要怎么实现,还是费了一点心,因为某些函数的应用书上根本没说。我去网上稍微搜了一下,发现直接搬过来,而且是在没有看到例子的时候就搬过来行不通。最终我用了COPY大法,一次性画出了三朵花,虽然花的大小跟要求的有点差别。当我看过答案以后,我觉得这种差别是完全可以理解的。胖瘦跟大小是由他们设定的参数决定的,那些参数我们不可能知道。我只能模拟出个大概比例,要我完全模拟出一模一样是不可能的。

小海龟这个东西是一个画图的玩意,但是那又不像艺术家手里的画笔那样随心所欲。那是编程出来的,编程出来的东西还是有大神可以画出个小猪佩奇,但这些做法正如某些大神能用Excel的单元格画出他们想画的任意东西一样。

玩过成年人常规的编程以后再去搞这个小海龟,我觉得最难的地方在于数据的运用。你该怎么处理那些数据?难就难在那些公式设计上面。我不知道为什么Think Python 2这一章要这么整人,但也正是因为他们把我整得很惨,所以我在函数调用上面的确有了一些思路,而那种感觉是从前老师又或者我自学的课程里从来没接触过的。这些才是最核心的东西!为了让我懂得这个,他们祭出了从来都让我很崩溃的小海龟。

现在回想起来,为什么小学的时候小海龟会那么容易让我崩溃,估计情况跟现在差不多。在解决问题的时候我没有把那个箭头当作是一条数学题,一定程度上我把它当作是一个游戏了,所以当我不可以一口说出答案的时候,我首先开始做的是瞎掰,折腾好长时间以后我才终于静下心来,用脑子去考虑,这到底是怎么回事。所以可能某些东西的实现并不难,但是因为我耗在瞎掰上面的时间太多了,简直把我搞得慌张了,所以我会对那个东西瑟瑟发抖。把大问题解剖下来变成小问题,再逐个击破,我应该能很快的发现我的问题所在。

战胜人生中曾经不敢去面对的,非常有意思。

2020-04
7

阴魂不散的小海龟

By xrspook @ 21:56:27 归类于: 扮IT

LOGO语言小海龟,你为啥阴魂不散啊啊啊啊啊啊啊啊啊啊!!!!!对从前小学3年级的我来说是个噩梦,现在依然是个噩梦!Think Python 2的第四章正是用这个turtle讲故事,想死的心都有了。没有一定英语基础,没有足够强悍的数学基础,怎么可能玩得转小海龟,而且还要空间思维能力。小时候我对这个东西瑟瑟发抖实在太正常了…… 25年后再遇到,我继续纠结得死去活来……

第四章最后的习题1要求画一个堆栈图,不知道他们到底要画些什么,要画到什么程度,mindmanager了一个,画完以后的确对函数的嵌套有点开窍。

习题2要画3朵花,画得我死去活来…… 但总算完全不看答案能画出来,看完答案,得到那些偷偷摸摸设定的参数后能画得跟要求一模一样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import turtle, math
def arc(t, r, angle):
    n = 20 # int(2*math.pi*r/4)+3 公式画图太细致太慢,直接赋值加速
    step_length = int(2*math.pi*r)*angle/360/n
    step_angle = angle/n
    t.lt(step_angle/2) # 据说折腾一下角度能消除像素误差?
    polygon(t, step_length, n, step_angle)
    t.rt(step_angle/2)
def polygon(t, length, n, angle):
    for i in range(n):
        t.fd(length)
        t.lt(angle)
def flower(t, p, r, a): # t for turtle, p for petal, r for radius, a for angle
    for i in range(p):
        for i in range(2): # 重复两次画花瓣,两次转向后和初始方向一致,非常重要!!!!!
            arc(t, r, a)
            t.lt(180-a)
        t.lt(360/p)
def move(t, length): # 一个画板画3朵花必须用暗中位移
    t.pu()
    t.fd(length)
    t.pd()
bob = turtle.Turtle()
move(bob, -100)
flower(bob, 7, 60, 60) # 偷偷设定半径和角度,万恶的例子,叫人怎么猜!于是我也直接搬!
move(bob, 100)
flower(bob, 10, 40, 80)
move(bob, 100)
flower(bob, 20, 140, 20)
turtle.mainloop()
2019-11
9

好心累啊

By xrspook @ 23:59:21 归类于: 烂日记

没钱的时候你总要发愁要怎么去赚钱,但是当你明明知道有钱花的时候,你却想不到应该用什么方式把那花掉?我觉得今年的双11对我来说就是这么回事。拼死拼活赚回来的红包却不知道该如何使用。没有这些红包的时候走在大街上,有很多东西想要买,无论是吃的还是不能吃的,但是当有钱可用的时候,又突然间觉得一切都好像无所谓,都不是必需品。如果那只是几块钱的话,你或许还可以忽略不计,但如果那是几十块钱的话,不用显然就太亏了。正常人都会有这种思路,尤其是你已经为了这个奋斗了20天。但实际上,为了这几十块钱的红包,估计你要死掉很多脑细胞,对那些本来就有很多东西要买的人来说,这花掉这几十块钱的红包太容易,不过是更划算而已。但是否那就真的是划算呢?我不知道。因为对平时不怎么了解价格的人来说,便宜和昂贵根本就没有一个度,你在双11这个点购物,其实有些时候黑心商家会把价格提上去然后再一个出满减或者打折降回来,但即便做了那些虚假的减价,实际上价格还是要比平时贵。所以在双11,这个全民考验数学能力的时候,花钱是一门非常高深的学问。我不排除有一些习惯性的学渣在双11会突然智商大爆发,但也有可能一些数学学霸在双11这个问题上其实栽了大跟头都不知道,因为他们可能太过于重视学习或者某些专业技术而忽略了某件物品本身的价值。

对一个完全不知道市场价的人来说,到了超市,他只能选择他需要的货物,但是对一个家庭主妇来说,超市里的每一件商品几乎都标上了很便宜或很贵的标签。在他们眼里,这种标识完全是条件反射的。在双11要家庭主妇们判断这个东西到底划不划算,理论上很简单,但实际上双11这种东西又充满了各种数学学霸才能摸得透的套路。所以在经过了各种满减,各种凑单以后,你是否还能真的算出某个物品的最终价格,能用那个最终价格跟平时的最低价做对比呢?如果你根本算不出那个商家系统最终给你的价格。家庭主妇所有那些条件反射完全作废。

我不知道有没有人系统研究过双11的各种套路,到底程序员是用什么逻辑去做判定的。显然,这么鸡贼的东西他们不会告诉你,因为他们的最终目的是你把东西放进购物车,并且提交订单,最终付款的那个价格实际上要偷偷比你设想的高。如果有人认真研究过他们的各种规则,可能你不会被坑到,但又有多少个用户真的非常仔细地研究过他们的各种规则呢?!而且他们的规则还不是一成不变的,而是每次都处在变动之中。你是否有考虑过,第2件0元跟满两件打5折是一回事呢?如果你没有考虑过这个,当你看到购物车里面的某个价格,你会大吃一惊,但显然,这已经是最简单的套路了。他们用得更多的是第2件半价,所以两件平均起来应该是7.5折。但万一还有满减呢?但万一还有预付定金立减呢?但万一还有88会员打折呢?

我觉得双11对我来说永远都好心累。拿折扣好心累,思考买些什么也好心累。

2018-07
26

公式变体

By xrspook @ 9:35:01 归类于: 烂日记

从完全不懂得如何还原魔方到可以完全不看武功秘籍还原三阶魔方,用时四分钟不到,我用了接近五天的时间。完全是靠自己看武功秘籍。前两层一些技巧性的东西没有人指点,只能靠自己摸索,虽然很简单,但是要把握先后顺序还是得思考一下。至于顶面的还原,至今我还没有100%的把握能快速做到,但总算有一点点技巧。就是把尽可能多的黄色方块放在左前侧。经常会用到左上右下,到了一定程度以后,我可以捏住其中两个方块进行扭转,所以最后两个动作是一气呵成的,不会过了或者没到。大概对高手而言,几乎每个旋转的动作他们都可以做到这样,因为即便是对我这个只玩过一个星期的人来说,无师自通的时候,我也已经掌握了这个。自己摸索回来的经验总是觉得很好用,如果那些都不是自己经过实践学回来,而是通过老师教授的话,大概我会觉得玩这个东西真烦,因为要记住很多口诀。现在我记住的只是最基础的东西,那些N多的口诀如果都能记下的话,大概很多情况我可以秒杀完成,但显然一直以来,我会不怎么喜欢魔方了,就像高中的时候学数学或者物理,同一条公式能推导出很多个变体。

还记得高一的物理老师兼我们的班主任总是想让我们记住每个公式的变体,我很烦他这种做法。如果我是记忆力牛逼,记住那些当然不成问题,但如果本来我的记忆力就很一般,要同时记住很多个科目的很多东西,我怎么可能把物理的一个简单公式推导出来的各种变体都完全记住呢?!如果我记不住那些变体而又乱用,最终只会导致那道题目我彻底没有分。相比之下,我们的数学老师他也可以根据函数公式推导出非常多变体。但是他没有强迫我们一定都得把变体全部都记住。记不住变体但是却一定要知道变生成的套路,根据原始的公式只要套路正确,肯定能得到正确的变体。的确,记住那些变体在数学方面,尤其是对付选择题方面,可以把很多东西都秒杀掉。但是,对我来说,记住那些东西实在太难了。一定程度上,我觉得如果要让我记住那些东西,唯一的方法只能是我通过题海战术经常使用到它们。就像一开始玩魔方的时候,刚刚接触左口诀跟右口诀,我总是一步一步慢慢来,但是到了现在,那两个口诀对我来说基本上已经成为了条件反射,刹那之间已经做完。做的时候有时甚至我不知道自己具体在做什么,反正手就能做出那些东西。这是因为我已经练习过非常多次了。相比之下,还原魔方的顶层的凹口诀和顺时针口诀每次我都要小心翼翼一步一步来,现在出错的几率已经比较低了,但是在使用那两个,比较长的公式的时候,我还是会放慢速度。口里一边默念,我需要做的动作,然后手跟着脑子做。如果熟练到一定程度,我觉得在完成那些操作的时候我可以做到像现在用左口诀和右口诀一样。

从来没还原过魔方的,会觉得还原魔方很神奇,现在我可以一次又一次地还原魔方,通常来说五分钟之内就可以搞定。如果快的话,甚至可以做到三分钟左右。现在对我来说,最重要的不是提速,而是明白其中的道理,因为只有摸清了其中道理,才能用那六九五十四个方块里设计出自己想要的造型。真正的魔方高手,除了速度以外,也肯定心里非常清楚魔方的各种形状是如何具体生成的,能做到随心所欲拼出自己想要的东西。我觉得那才是我玩魔方的目的所在。显然,现在我还没能把握好那些公式,为什么会那样?能不能不那样?顶面和顶层遇到某些形状的时候,我该用什么方式快速搞定?即便我不能快速搞定,我也应该知道循环某公式几次才能达到目的。对新手来说,一个高手突然告诉他这些信息,他一定会觉得非常神奇,但是,对老手来说,我觉得这是理所当然应该知道的。

魔方这东西最根本的应该由自己去领会,而不是直接通过背公式去死记。

2017-11
5

不合格往事

By xrspook @ 21:34:18 归类于: 烂日记

我一直都觉得,自己是脾气比较暴躁的人,在一定程度上我的忍耐力,已经比从前很多,这个跟的是我学生时代做的对比。记得我还是个孩子的时候,我总会因为一些事感觉到烦心,于是自然而然的就会发脾气。结果可能不是骂人打人,而是大哭一场,最终会导致,我被家长教训一顿。

还记得小学的时候,有一次期末考试之前,语文老师布置的作业很多,都快晚上12点了,我还没有做完,于是我就哭了,但哭并不能解决问题,我还是得继续装下去。哭只会让我产生怨气,做得更慢。回想当年,那些作业不过是老师要求把后面生词表的字全部都抄上不知道多少遍而已。为什么会做得那么慢,我也不知道。如果我胡乱写,肯定可以快很多。从狡猾的角度考虑,即便我把一些字漏掉,老师也可能察觉不出来,而且那真的是无意漏掉的话,老师也真的不能拿我怎样。但是学生的时候,我就从来没有想过还可以这样,实际上抄是抄了,但真的有没有漏掉真不知道。因为那种抄写的作业谁也不会认真去看。语文也好,英语也好,其实每到期末考试之前都会有这样的作业。从前写得慢大概是因为我妈对我的田字格汉字有要求。但到了那个时候,其实那个字不写错也就可以了,丑不丑不是重点。汉字写得慢,可能是因为,我对文字的了解不是很深。所以每个笔画都要按照印刷体来画,与其说那是在写字,不如说那是在临摹。就像外国人学汉字一样,那是在画画。只有把每个笔画都清楚了解了,你才不容易把字写错。这个过程需要积累,到期末考试之前,理论上我们应该已经把那些汉字掌握了,所以老师布置那个作业的时候,她觉得我们不需要用那么多时间去完成,但实际上,我去耗了很长时间。

还有另外一次我做作业做哭了,那是因为第二天就是高中的物理考试。当时我真有这个感觉,无论如何我都不会考及格。并不是因为考试之前老师就已经恐吓我们,而是因为那些知识点无论是从公式还是计算,对我来说都很难。每次物理期末考试,很多人都不及格,所以为了让分数好看,老师只好在所有人的成绩上面乘以一个系数。最终大家要不要补考还得把平时成绩加权平均算上,因为如果只是用一次考试成绩做定断,补考的人实在太多了。最终那一次物理考试,从卷面成绩说,我的确没有及格,但我也不需要补考。那是我第一次感觉到,明天去考试,今天知道自己一定不会过,那种感觉实在太糟糕了。完全不是胸有成竹一定能考得好,而是胸有成竹自己必死无疑。之前之后这种事都没有发生过,唯独那一次。

高中时候的英语测验我也试过有一次不及格,那是因为卷子是学校里面非常牛的英语老师出的,那份卷子的难度相当于四级。我做那份卷子的时候我们只是读高二。除了第一大题语法题是跟那个单元的生词有关,完形填空、阅读理解以及后面部分看不懂的单词看不懂的句子比看懂的还要多。给我们出那份卷子的老师就没想过我们会有多少人及格。他只是纯粹想让我们感受一下什么叫做难。在做那份卷子之前,我并不知道那份卷子会这么变态。知道那份卷子如此厉害之后,我觉得自己不合格是理所当然的事。因为做的时候我就觉得那份卷子就像天书一样,纯粹碰运气瞎掰。通常老师出的卷子都不会让大多数的人太难堪,但显然那一次老师出的卷子就是故意让大家很难堪的,所以我死了那是很自然的事。

高中时候的数学,有段时间我一直徘徊在合格与不合格之间,正负十分以内。当时我真的很怕我们那个数学老师,但后来,我居然习惯了他经常让我心惊胆战,再到后来,虽然要挣扎达到班的平均分以上还是很难,但总算我不会在合格线附近徘徊了。

高中是我唯一觉得测验考试合格或者达到班平均分也很难的阶段。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress