【发布时间】:2011-02-08 13:32:01
【问题描述】:
我在编写笛卡尔幂函数时遇到问题。我找到了很多关于计算笛卡尔积的例子,但没有一个关于笛卡尔幂的例子。
例如,[1;2] 的幂 3 = [ [1;1;1] ; [1;1;2] ; [1;2;1] ; [1;2;2] ; [2;1;1] ; [2;1;2] ; [2;2;1]; [2;2;2] ]
我使用以下代码来计算笛卡尔积:
let Cprod U V =
let mutable res = []
for u in U do
for v in V do
res <- res @ [[u;v]]
res
并尝试计算笛卡尔幂。 我使用以下代码来计算笛卡尔积:
let Cpower U n =
let mutable V = U
for i=0 to n-1 do
V <- Dprod U V
V
Visual Studio 说:错误统一''a'和''a list'时产生的类型将是无限的。我会感谢任何帮助和链接。
【问题讨论】:
-
你知道 @ 有线性运行时间吗?使用 :: 并在末尾反转(如果有必要的话)将比使用 @ 快得多。