数字排列组合是个经典的算法问题,它很通俗易懂,适合不懂业务的人学习,我们通过它来发现和运用并行计算的优势,可以得到一个很直观的体会,并留下深刻的印象。问题如下: 请写一个程序,输入M,然后打印出M个数字的所有排列组合(每个数字为1,2,3,4中的一个)。比如:M=3,输出: 1,1,1 1,1,2 …… 4,4,4 共64个 注意:这里是使用计算机遍历出所有排列组合,而不是求总数,如果只求总数,可以直接利用数学公式进行计算了。 这种算法常用递归或迭代来实现,单当M=14时,中间结果数量已经过亿,再大的话很容易超过单台机器的处理能力,所以我用hadoop来实现多机分别处理。