我一直在解决欧拉计划问题24,并找到了一个用Scala编写的解决方案(我本来想自己解决的)。我原打算自己解决,但现在着迷于弄清楚这个解决方案是如何工作的。
问题:
问题:
解决方案:0、1和2的字典排列为:
012、021、102、120、201和210。
数字0、1、2、3、4、5、6、7、8和9的第1000000个字典排列是什么?
def permutations(s : String) : Seq[String] =
{
if(s.size == 1)
Seq(s);
else
s.flatMap(x => permutations(s.filterNot(_ == x)).map(x +));
}
val ans = permutations("0123456789")(1000000 - 1).toLong;
println(ans);