⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用循环来求集合的笛卡尔积.txt

📁 c语言的一些常见的算法以及思考和改进的文章,写的很不错,花费了很大的精力从网络了搜罗的,希望大家喜欢.
💻 TXT
字号:
使用循环来求集合的笛卡尔积[原创] 
    笛卡尔积,在很多领域都有应用。

    一、什么是笛卡尔积

    假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。可以扩展到多个集合的情况。

    类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。

     二、使用循环来求集合的笛卡尔积

     我们可以看出来,求笛卡尔积的过程与C中循环的内外层嵌套有很大的相似之处,想到这一点,就好办了。下面的代码中使用数组来表示上面的集合,运行后输出3个集合的笛卡尔积。

#define N 5
void init(int *p)
{
   int i;
   for(i=0;i<N;i++)
     p[i]=i+1;
}
void main()
{
   int a[N],b[N],c[N];
   int i,j,k,m;
   init(a);
   init(b);
   init(c);
   for(i=0;i<N;i++)
      for(j=0;j<N;j++)
          for(k=0;k<N;k++)
               printf("\n%4d,%4d,%4d",a[i],b[j],c[k]);
}

    代码很简单,大家也都见过很多次了,只不过是数组元素的输出而已。其实,很多东西看似简单,实际上则蕴含着丰富含义,等待着我们去挖掘。
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -