什么样的数学将帮助我解决编程问题?

时间:2010-10-13 18:47:23

标签: algorithm math

我一直在研究各种编程问题和算法,以提高我的编程和解决问题的能力。但是,我一直在讨论这样的描述:

“令A = [a1,a2,...,an]是整数1,2,...,n的排列。一对索引(i,j),1< = i< = j< ; = n,是置换A的倒置,如果ai> aj。我们给出整数n> 0且k> = 0.真正包含k个倒置的n元素排列的数量是多少?“ (来源:http://www.spoj.pl/problems/PERMUT1/

为了让这种问题描述对我有意义,我需要学习什么样的数学?

4 个答案:

答案 0 :(得分:6)

离散数学。它涉及很多组合,概率等,这就是你在那里遇到的问题。 (http://en.wikipedia.org/wiki/Discrete_mathematics

能够阅读设定的等式可能也不会造成伤害。

答案 1 :(得分:4)

一个月前我就陷入了这种窘境。直到我从Steve Yegge那里得到这篇文章 - Math for Programmers

非常有用,强烈推荐阅读。希望在阅读之后,您将获得从那里获取它的指示。一切顺利。

答案 2 :(得分:1)

我建议您查看以下一个(或两个):

Graham,Knuth Patashnik:具体数学

Knuth:计算机编程艺术(第1卷)

它们并不容易阅读,你至少想要高中数学的背景,但它们很好地从那里引导到你在问题中描述的那种数学,并且有很多练习。

答案 3 :(得分:0)