笛卡尔积判断Python实现
笛卡尔积的生成和判断,其实就是把两个集合里的所有元素配对一遍——组合出所有的有序对。听起来挺数学,但实现起来直观。Python 和 C# 这两个语言里操作都不复杂,循环嵌套走一遍就能搞定。
两个集合的所有配对,其实就是所谓的笛卡尔积。你要做的就是把集合 A 的每个元素和集合 B 的每个元素配起来,用编程语言去模拟这个过程。像 Python 里直接一个列表推导就搞定了:
def cartesian_product(A, B):
return [(a, b) for a in A for b in B]
运行下试试,输出就是一堆形如 (1, 'x')
的元组,直观又清晰。比较适合调试逻辑或者前期原型测试。
如果你在用 Visual Studio,那可以用 C# 实现一个类似的逻辑,代码也不复杂:
public static List> ComputeCartesianProduct(List A, List B)
{
var result = new List>();
foreach (var a in A)
{
foreach (var b in B)
{
result.Add(Tuple.Create(a, b));
}
}
return result;
}
控制台输出一把,立马就能看到效果。适合做一些组合生成、关系匹配类的判断任务。
你要是做更复杂的判断,比如某个对是否在笛卡尔积中,或者两个集合的积是不是一致,就加个 Contains
或者 Set.Equals
判断一下就行。
哦对了,如果你对离散数学感兴趣,也可以看看离散数学课后答案更新和Kotlin Discrete Math Toolkit,扩展一下思路还挺有。
如果你平时写算法或者搞一些数据关系的,这个笛卡尔积的判断思路可以顺手收着,用得上的场景还挺多。
Discrete Mathematics Cartesian product .zip
预估大小:32个文件
笛卡尔乘积
文件夹
笛卡尔乘积.suo
13KB
笛卡尔乘积.sln
910B
debug
文件夹
笛卡尔乘积.ilk
文件夹
笛卡尔乘积.exe
72KB
笛卡尔乘积.pdb
203KB
笛卡尔乘积.ncb
9.63MB
笛卡尔乘积
文件夹
AssemblyInfo.cpp
1KB
3.14MB
文件大小:
评论区