本科计算机毕业 4 年,工作 4 年,今天刚学会排列组合,突然对编程发现很有用

2019-05-07 10:52:36 +08:00
 chaogeonly

不瞒大家说,今天和同学讨论一个问题:低开、高开、低走、高走,一共有多少个排列组合(当时还不明白排列和组合的具体含义),然后我就说是 A22 * 2,同学说不对,而是 A21 * A21,然后我就开始学习排列组合,因为排列组合在我做“扛精”的道路上已经好几次吃了不懂的亏,通过知乎的一个答案,我彻底明白了:

排列就是一个萝卜一个坑啊,第一个坑有 m 种选择,第二个有 m-1 种,第 n 个有 m-n+1。
算法就是排列公式啊。阶乘知道吧……

组合就是在排列的基础上坑不需要顺序了,一把抓,排列除以坑的全排列就好。

然后我突然发现,这个东西不就是我经常写的代码里面的一些基础思想吗,排序和其他的一些东西。 因此我有感而发,数学中还有什么基础的数学理论,对编程特别特别重要的呢。

11011 次点击
所在节点    程序员
72 条回复
goodmorningivan
2019-05-07 17:29:29 +08:00
之前编码的时候,可能因为是等级较低的码农,只有在实现一些底层的算法时,才感觉之前的数学有点用,应用层、业务层的东西,感觉基本和数据不怎么沾边。。。
fsafdasfsdafsd
2019-05-07 18:34:12 +08:00
递归或者分治更准确吧,
salamanderMH
2019-05-07 18:39:55 +08:00
这是高中的题
ruter2019
2019-05-07 19:15:26 +08:00
高中就学了吧
mattx
2019-05-07 19:15:55 +08:00
sanxidiot
2019-05-07 21:11:06 +08:00
计算机是工科,用到的数学其实是属于简单而且比较少的了。数学对于算法是很重要的,如果你是做图像的的话,不管是 ai、还是图形学都与数学密切相关。
其实用不用到数学以及用到多深的数学还是与你做什么,做的有多深有关。
对于计算机而言,数学比较重要的是基础的微积分(数学基础,不会微积分就不用学数学了,不过好在计算机的要求不是很高,不过学的深入肯定更好),概率论,线性代数。除此之外还有离散数学(一堆计算机密切的数学领域的杂糅,包括组合数学),计算方法等。
以上是一个普通 lj 计算机本科教的数学,与名校难度无法比,所以不要怪大家怀疑 lz 的学历,而是这些真的就是计算机本科基础教学内容。
如果你还想深入的话看需求学就好了,比如 AI 的话可以学一些凸优化的内容。
Xs0ul
2019-05-07 21:25:36 +08:00
@maxco292 异或是 Z2 上的交换群。看到这个我才告别硬记真值表,并且理解为啥它有交换律
MonoLogueChi
2019-05-07 21:29:38 +08:00
@whwq2012 做游戏的话,几何部分会用的更多,很多地方都需要用到空间变换
dragonsunmoon
2019-05-07 22:21:41 +08:00
oneisall8955
2019-05-07 22:23:27 +08:00
高中数学有相关的课程,具体应该是离散数学某个章节吧
akira
2019-05-08 03:30:09 +08:00
娃娃小学四年级了,前几天看他们数学已经在学组合了
curdoldman
2019-05-08 17:06:24 +08:00
你这是在黑大学计算机专业

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/561711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX