确定从有限集 A 到有限集 B 的函数 f 是否为本体函数的算法。
An algorithm that determines if a function f from the finite set A to the finite set B is an onto function.
我如何编写一个算法来确定从有限集 A 到有限集 B 的函数 f 是否是一个本体函数。
这是我目前拥有的:
A: array ( members of set A )
B: array ( members of set B )
Mapped: associative array of Boolean variables.
for each b in B:
Mapped[b] = false
for each a in A:
Mapped[f(a)] = true
Onto = true;
for each b in B:
Onto = Onto AND Mapped[b]
return Onto
这是正确的吗?
是的,那行得通。一个可能更简单的方法是
for each a in A:
remove f(a) from B
return (is B empty?)
当然你应该先排序B
,这样你可以更快地删除。
我如何编写一个算法来确定从有限集 A 到有限集 B 的函数 f 是否是一个本体函数。
这是我目前拥有的:
A: array ( members of set A )
B: array ( members of set B )
Mapped: associative array of Boolean variables.
for each b in B:
Mapped[b] = false
for each a in A:
Mapped[f(a)] = true
Onto = true;
for each b in B:
Onto = Onto AND Mapped[b]
return Onto
这是正确的吗?
是的,那行得通。一个可能更简单的方法是
for each a in A:
remove f(a) from B
return (is B empty?)
当然你应该先排序B
,这样你可以更快地删除。