本科计算机毕业 4 年,工作 4 年,今天刚学会排列组合,突然对编程发现很有用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
chaogeonly
V2EX    程序员

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

  •  
  •   chaogeonly 2019-05-07 10:52:36 +08:00 11756 次点击
    这是一个创建于 2382 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    排列就是一个萝卜一个坑啊,第一个坑有 m 种选择,第二个有 m-1 种,第 n 个有 m-n+1。 算法就是排列公式啊。阶乘知道吧…… 组合就是在排列的基础上坑不需要顺序了,一把抓,排列除以坑的全排列就好。 

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

    第 1 条附言    2019-05-07 13:28:38 +08:00
    谢谢 @expy 提供的学习幼儿园到高中的数学网站:
    中文 - https://www.shuxuele.com/
    英文 - https://www.mathsisfun.com/
    72 条回复    2019-05-08 17:06:24 +08:00
    50infivedays
        1
    50infivedays  
       2019-05-07 10:56:21 +08:00   1
    离散数学拯救你
    MIMEIK
        2
    MIMEIK  
       2019-05-07 11:07:32 +08:00
    线性代数吧,概率论其次,高数反而用的没那么多(或者用线性代数以另一种方式解决了吧)
    学艺不精,就知道贝叶斯和傅立叶变换的一些应用
    想大致了解一些数学知识在计算机上的应用可以看看吴军的《数学之美》或者李永乐老师数学系列的视频
    lostberryzz
        3
    lostberryzz  
       2019-05-07 11:17:00 +08:00
    这不是高中数学吗。。
    syahd
        4
    syahd  
       2019-05-07 11:19:19 +08:00 via Android
    高中数学的非几何部分应该都用的到。
    hackerang
        5
    hackerang  
       2019-05-07 11:19:22 +08:00
    这东西你都不知道是怎么过高考的。。
    wallriding
        6
    wallriding  
       2019-05-07 11:20:24 +08:00
    刚过本科线的本科?
    aLazarus
        7
    aLazarus  
       2019-05-07 11:20:58 +08:00 via Android   9
    黑板上排列组合,你舍得解开嘛
    rocbomb
        8
    rocbomb  
       2019-05-07 11:21:08 +08:00   1
    我们本科有开 具体数学 课
    q397064399
        9
    q397064399  
       2019-05-07 11:21:47 +08:00
    这就基本的离散数学 ..
    BCy66drFCvk1Ou87
        10
    BCy66drFCvk1Ou87  
       2019-05-07 11:21:58 +08:00   1
    这不高中的数学么……你确定你是本科?
    xzc19970719
        11
    xzc19970719  
       2019-05-07 11:26:46 +08:00
    不不不。。这是高中最基本的概率题都得会的
    zackwu
        12
    zackwu  
       2019-05-07 11:31:45 +08:00   2
    本来以为楼主是非科班出身,结果一看“本科计算机”。

    我现在对本科产生了深深的怀疑...
    dinjufen
        13
    dinjufen  
       2019-05-07 11:35:58 +08:00
    楼上的几个,题主很多年一直不用不会忘?
    zonyitoo
        14
    zonyitoo  
       2019-05-07 11:39:01 +08:00
    什么学校的本科?要告诉一下即将报志愿的高考生听
    glaucus
        15
    glaucus  
       2019-05-07 11:42:02 +08:00 via iPhone
    这不是义务教育的内容吗……虽然我已经忘光了
    Lax
        16
    Lax  
       2019-05-07 11:46:28 +08:00
    @dinjufen 高中数学,而且如果还在写代码类的工作就应该会一直用到
    luozic
        17
    luozic  
       2019-05-07 11:49:31 +08:00
    不是大吧。。。麽?
    huntzhan
        18
    huntzhan  
       2019-05-07 11:49:33 +08:00
    什么学校的本科,以后招人重点关注一下
    Chingim
        19
    Chingim  
       2019-05-07 11:51:33 +08:00
    @dinjufen 他说刚学会
    longbye0
        20
    longbye0  
       2019-05-07 11:55:27 +08:00 via Android   1
    我觉得是 C21 * C21
    maplelin
        21
    maplelin  
       2019-05-07 12:04:56 +08:00
    傅立叶变换了解一下
    nxforce
        22
    nxforce  
       2019-05-07 12:13:00 +08:00   1
    排列组合是高中数学的内容。。。高考必考的。。。而且是属于非常基础的知识,属于概率入门中的入门知识。。
    fengyj
        23
    fengyj  
       2019-05-07 12:14:51 +08:00 via Android
    你的本科计算机是不教呢?还是自己没有学进去啊?
    alwjlola
        24
    alwjlola  
       2019-05-07 12:15:58 +08:00 via Android
    高二的知识啊...
    Owenjia
        25
    Owenjia  
       2019-05-07 12:27:37 +08:00
    想问是哪个学校的本科……
    dobelee
        26
    dobelee  
       2019-05-07 12:29:15 +08:00 via Android
    常识理解+高二数学+本科离散数学。
    expy
        27
    expy  
       2019-05-07 12:31:04 +08:00   2
    这篇不错,排列组合;可重复不可重复的通项公式全有了。
    https://www.mathsisfun.com/combinatorics/combinations-permutations.html
    subpo
        28
    subpo  
    PRO
       2019-05-07 12:35:51 +08:00
    确实是高中数学,高中记得很清楚,现在回忆一下已经不记得了,完蛋...
    CodingNaux
        29
    CodingNaux  
       2019-05-07 12:36:41 +08:00 via iPhone
    至今没用到啥数学………
    deepdark
        30
    deepdark  
       2019-05-07 12:37:16 +08:00 via Android   4
    我觉得你不仅数学不行,语文也不行。这个标题怎么都读不通,“突然对编程发现很有用”???
    bruce2000
        31
    bruce2000  
       2019-05-07 12:42:06 +08:00
    大多都很重要,只是水平问题接触不到那个层次
    lidongyx
        32
    lidongyx  
       2019-05-07 12:44:00 +08:00 via iPhone   1
    楼主现在才恍然大悟这一点都不奇怪,因为我们已经学的数学与实际脱节严重,有难学又没有太大的实用性。
    其实数学在应用方面本身就应该与编程结合,不仅如此在数学的教学手段与教学方向方面,也应该与编程结合。
    lidongyx
        33
    lidongyx  
       2019-05-07 12:48:18 +08:00 via iPhone
    最近我就在探索如何使用 Python 来学数学,https://zhuanlan.zhihu.com/math-with-python
    国外已经有非常多的实践了,最近也一直在潜修,哈哈
    Cabana
        34
    Cabana  
       2019-05-07 12:50:05 +08:00 via Android
    @longbye0 哈哈,看来楼主还是没分清
    @chaogeonly A 是排列,C 是组合
    ggmood
        35
    ggmood  
       2019-05-07 12:57:49 +08:00
    完了,楼主是不是已然懵逼?
    2589595915
        36
    2589595915  
       2019-05-07 13:05:59 +08:00   1
    非要嘲讽楼主,大家就开心了。
    sola97
        37
    sola97  
       2019-05-07 13:12:11 +08:00
    浙江高考改革前概率都是数学 1B 模块的内容,够不到一本线的老师都不会教。。
    Nicoco
        38
    Nicoco  
       2019-05-07 13:13:34 +08:00
    很多省份的高中数学都有,不知道楼主是那个身份高考的?
    alfchin
        39
    alfchin  
       2019-05-07 13:14:06 +08:00 via Android
    @huiyifyj 计算机系学的是数学 A 吧,最难的那种
    Yiki
        40
    Yiki  
       2019-05-07 13:14:11 +08:00
    到底有什么用都不具体说说
    你想表达你会组合用在哪里了
    我大二期末考考了概率就写这个
    shihty5
        41
    shihty5  
       2019-05-07 13:22:24 +08:00   1
    楼主的意思是想大家集思广益,看看数学或一些基础知识在编程应用的实践
    没必要秀优越感[doge]
    niboy
        42
    niboy  
       2019-05-07 13:26:34 +08:00
    现在小学奥数就已经开始学排列组合了,捆绑法、插排法......三年级就学,真的...
    maxco292
        43
    maxco292  
       2019-05-07 13:27:37 +08:00   1
    抽象代数,譬如 C 的 unsigned int 的加法是交换群
    Sapp
        44
    Sapp  
       2019-05-07 13:35:27 +08:00   1
    @whwq2012 几何其实也用得到,只不过是大多数后端用不到,前端还是要用的
    shyrock
        45
    shyrock  
       2019-05-07 13:37:24 +08:00
    计算机本科被黑得最惨的一次。。。
    darmau
        46
    darmau  
       2019-05-07 13:49:39 +08:00
    @lidongyx 看了外国教材才发现人家那真的是教科书,我们的是工具书。
    tchqiq
        47
    tchqiq  
       2019-05-07 13:58:34 +08:00
    同样 拿 python 写过统计程序后才真正理解什么叫统计显著和置信区间
    arzterk
        48
    arzterk  
       2019-05-07 14:28:51 +08:00
    丢个自己玩 math x cs 的博客 https://liudx1985.github.io/
    供参考
    逃:)
    Mavious
        49
    Mavious  
       2019-05-07 15:37:33 +08:00
    来,排列题一道,高中数学难度。当初先学排列,在学组合,最后学概率。我反而觉得概率最简单。

    某单位在元旦 3 天假期需要 6 名工作人员值班,每天上、下午各 1 人。A、B、C 三个科室各有 1 位科长和 1 位科员可以参与值班。要求每天都有科长参与值班,则共有多少种排班方法?
    limuyan44
        50
    limuyan44  
       2019-05-07 15:38:34 +08:00 via Android
    这么看各地区教学还真不同,我们是高中教的,才知道大学才教的这么多。
    wolfie
        51
    wolfie  
       2019-05-07 16:09:12 +08:00
    看标题以为是抖机灵
    hyanwang
        52
    hyanwang  
       2019-05-07 16:09:23 +08:00
    中国的孩纸死在应用数学上……
    janxin
        53
    janxin  
       2019-05-07 16:22:59 +08:00 via iPhone
    你是大学没学过吗…
    mikoshu
        54
    mikoshu  
       2019-05-07 16:37:56 +08:00
    好像很多 比如我之前做小游戏 碰撞检测就用的勾股定理 然后还有各种三角函数的使用 还有矩阵 等等呀 最近看一本书叫 数学之美 各种离散数学 和概率论的东西 其实对人工智能啥的都有很大的帮助 不过具体我也不太懂 反正 数学牛逼
    asLw0P981N0M0TCC
        55
    asLw0P981N0M0TCC  
       2019-05-07 16:49:53 +08:00
    你们记性都这么好的吗 谁不知道高中学过一样。
    fengyj
        56
    fengyj  
       2019-05-07 16:51:50 +08:00
    @alfchin #39
    是啊,高数是 A 难度,还有离散,线性代数,概率论,一大堆数学相关的专业课。大一大二真被这些逼疯了。
    lastpass
        57
    lastpass  
       2019-05-07 16:59:24 +08:00 via Android
    来搞 spark 吧。你会天天琢磨离散,线代的。
    orzorzorzorz
        58
    orzorzorzorz  
       2019-05-07 17:10:47 +08:00
    ...看了这么多楼,突然发现我不配写代码了
    yangzhezjgs
        59
    yangzhezjgs  
       2019-05-07 17:22:13 +08:00
    组合数学了解一下,一般是研究生的课
    JerryJet
        60
    JerryJet  
       2019-05-07 17:28:44 +08:00
    计算机科学可以说是数学衍生的分支学科吧
    goodmorningivan
        61
    goodmorningivan  
       2019-05-07 17:29:29 +08:00
    之前编码的时候,可能因为是等级较低的码农,只有在实现一些底层的算法时,才感觉之前的数学有点用,应用层、业务层的东西,感觉基本和数据不怎么沾边。。。
    fsafdasfsdafsd
        62
    fsafdasfsdafsd  
       2019-05-07 18:34:12 +08:00
    递归或者分治更准确吧,
    salamanderMH
        63
    salamanderMH  
       2019-05-07 18:39:55 +08:00 via Android
    这是高中的题
    ruter2019
        64
    ruter2019  
       2019-05-07 19:15:26 +08:00
    高中就学了吧
    mattx
        65
    mattx  
       2019-05-07 19:15:55 +08:00
    sanxidiot
        66
    sanxidiot  
       2019-05-07 21:11:06 +08:00 via Android
    计算机是工科,用到的数学其实是属于简单而且比较少的了。数学对于算法是很重要的,如果你是做图像的的话,不管是 ai、还是图形学都与数学密切相关。
    其实用不用到数学以及用到多深的数学还是与你做什么,做的有多深有关。
    对于计算机而言,数学比较重要的是基础的微积分(数学基础,不会微积分就不用学数学了,不过好在计算机的要求不是很高,不过学的深入肯定更好),概率论,线性代数。除此之外还有离散数学(一堆计算机密切的数学领域的杂糅,包括组合数学),计算方法等。
    以上是一个普通 lj 计算机本科教的数学,与名校难度无法比,所以不要怪大家怀疑 lz 的学历,而是这些真的就是计算机本科基础教学内容。
    如果你还想深入的话看需求学就好了,比如 AI 的话可以学一些凸优化的内容。
    Xs0ul
        67
    Xs0ul  
       2019-05-07 21:25:36 +08:00
    @maxco292 异或是 Z2 上的交换群。看到这个我才告别硬记真值表,并且理解为啥它有交换律
    MonoLogueChi
        68
    MonoLogueChi  
       2019-05-07 21:29:38 +08:00 via Android
    @whwq2012 做游戏的话,几何部分会用的更多,很多地方都需要用到空间变换
    itechify
        70
    itechify  
    PRO
       2019-05-07 22:23:27 +08:00 via Android
    高中数学有相关的课程,具体应该是离散数学某个章节吧
    akira
        71
    akira  
       2019-05-08 03:30:09 +08:00
    娃娃小学四年级了,前几天看他们数学已经在学组合了
    curdoldman
        72
    curdoldman  
       2019-05-08 17:06:24 +08:00
    你这是在黑大学计算机专业
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3354 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 04:45 PVG 12:45 LAX 20:45 JFK 23:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86