求集合的笛卡尔乘积

简介: 求集合的笛卡尔乘积

一:【实验目的】

通过编实现给定集合A和B的笛卡尔积C=AA,D=AB,E=BA,F=AAB,G=A(A*B).

二:【实验内容】

已知所给集合A={1,2},B={a,b,c},求A,B的笛卡尔积C=AA,D=AB,E=BA,F=AAB,G=A(A*B)

三:【实验原理】

笛卡尔乘积是以有序偶为元素的集合,它的定义为C={(x,y)|x∈A,y∈B}。所以欲求笛卡尔积,只需取尽集合A的元素和集合B的元素,并构成序偶(a,b)送入C中即可。

四:代码实现:

#include <stdio.h>
int main()
{
  char A[] = {'1','2'};
  int M = sizeof(A)/sizeof(A[0]);
  char B[] = { 'a','b','c' };
  int N = sizeof(B) / sizeof(B[0]);
  char C[2][2] = { 0 };
  //求C的笛卡尔积,C=A*A
  printf("C=A*A=");
  printf("{");
  int i = 0;
  int j = 0;
  for (i = 0; i < M; i++)
  {
    for (j = 0; j < M; j++)
    {
      C[i][0] = A[i];
      C[i][1] = A[j];
      printf("(%c,%c)", C[i][0], C[i][1]);
    }
  }
  printf("}");
  printf("\n");
  //求D的笛卡尔积,D=A*B
  char D[2][3] = { 0 };
  printf("D=A*B=");
  printf("{");
  for (i = 0; i < M; i++)
  {
    for (j = 0; j < N; j++)
    {
      D[i][0] = A[i];
      D[i][1] = B[j];
      printf("(%c,%c)", D[i][0], D[i][1]);
    }
  }
  printf("}");
  printf("\n");
  //求E的笛卡尔积,E=B*A
  char E[3][2] = { 0 };
  printf("E=B*A=");
  printf("{");
  for (i = 0; i < N; i++)
  {
    for (j = 0; j < M; j++)
    {
      E[i][0] = B[i];
      E[i][1] = A[j];
      printf("(%c,%c)", E[i][0], E[i][1]);
    }
  }
  printf("}");
  printf("\n");
    //求F的笛卡尔积,E=A*A*B
  char F[2][2][3] = { 0 };
  printf("E=A*A*B=");
  printf("{");
  for (i = 0; i < M; i++)
  {
    for (j = 0; j < M; j++)
    {
      for (int k = 0; k < N; k++)
      {
        F[i][j][0] = A[i];
        F[i][j][1] = A[j];
        F[i][j][2] = B[k];
        printf("((%c,%c),%c)", F[i][j][0], F[i][j][1], F[i][j][2]);
      }
    }
    printf("}");
    printf("\n");
  }
      //求G的笛卡尔积,G=A*(A*B)
  char G[2][2][3] = { 0 };      
    printf("G=A*(A*B)=");
    printf("{");
    for (i = 0; i < M; i++)
    {
      for (j = 0; j < M; j++)
      {
        for (int k = 0; k < N; k++)
        {
          G[i][j][0] = A[i];
          G[i][j][1] = A[j];
          G[i][j][2] = B[k];
          printf("(%c,(%c,%c))", G[i][j][0], G[i][j][1], G[i][j][2]);
        }
      }
    }
  printf("}");
  return 0;
}

【实验心得】

通过这个实验,我们可以更深入的了解集合的性质和它们之间的相互作用。在这个实验中,我们将两个集合的元素进行组合,形成了一个新的集合。更深入地了解集合之间的关系,同时这个实验也有助于培养我们的逻辑思维能力和分析问题的能力。

目录
相关文章
|
9月前
|
人工智能 缓存 安全
大模型无缝切换,QwQ-32B和DeepSeek-R1 全都要
通义千问最新推出的QwQ-32B推理模型,拥有320亿参数,性能媲美DeepSeek-R1(6710亿参数)。QwQ-32B支持在小型移动设备上本地运行,并可将企业大模型API调用成本降低90%以上。本文介绍了如何通过Higress AI网关实现DeepSeek-R1与QwQ-32B之间的无缝切换,涵盖环境准备、模型接入配置及客户端调用示例等内容。此外,还详细探讨了Higress AI网关的多模型服务、消费者鉴权、模型自动切换等高级功能,帮助企业解决TPS与成本平衡、内容安全合规等问题,提升大模型应用的稳定性和效率。
1224 136
大模型无缝切换,QwQ-32B和DeepSeek-R1 全都要
|
缓存 关系型数据库 数据库
PostgreSQL技术大讲堂 - 第32讲:数据库参数调整
从零开始学PostgreSQL技术大讲堂 - 第32讲:数据库参数调整
775 2
|
存储 开发者 Python
【阿里云镜像】配置阿里巴巴开源镜像站镜像——PyPI 镜像
【阿里云镜像】配置阿里巴巴开源镜像站镜像——PyPI 镜像
5896 0
【阿里云镜像】配置阿里巴巴开源镜像站镜像——PyPI 镜像
|
机器学习/深度学习 数据采集 人工智能
深度探索:人工智能在医疗影像诊断中的应用与挑战####
本文旨在深入剖析人工智能(AI)技术在医疗影像诊断领域的最新进展、核心优势、面临的挑战及未来发展趋势。通过综合分析当前AI算法在提高诊断准确性、效率及可解释性方面的贡献,结合具体案例,揭示其在临床实践中的实际价值与潜在局限。文章还展望了AI如何与其他先进技术融合,以推动医疗影像学迈向更高层次的智能化时代。 ####
|
IDE Java 开发工具
ide工具
ide工具
365 8
|
自然语言处理 UED 开发者
LLaMA-Omni 低延迟高质量语音交互,开源!
随着GPT-4o的发布,在语音界面的Voice-Chat越来越受到大家的关注,对于低延迟,高准确性模型的speech-to-speech的需求日益增长
|
自然语言处理 前端开发 Java
您的智能测试助理来了!蚂蚁TestAgent开源,快来体验!
TestAgent 旨在构建测试领域的“智能体”,融合大模型和质量领域工程化技术,促进质量技术代系升级。我们期望和社区成员一起合作,打造创新的测试领域解决方案,构建24小时在线的测试助理服务,让测试如丝般顺滑。 很高兴地宣布,我们在国内首次开源了测试行业大模型及工具——TestAgent。本次版本包含了性能最强的7B测试领域大模型,以及配套的本地模型快速发布和体验工程化框架,欢迎体验和关注!
3010 0
您的智能测试助理来了!蚂蚁TestAgent开源,快来体验!
|
Java Unix BI
PMD【 Java 代码检查工具】入门使用教程(超详细)
PMD【 Java 代码检查工具】入门使用教程(超详细)
PMD【 Java 代码检查工具】入门使用教程(超详细)
|
消息中间件 监控 数据可视化
【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例
influxDB的官网下载地址 https://portal.influxdata.com/downloads/打开以后,如下图所示,可以选择版本号,以及平台。此处咱们选择windows平台。不过此处没有实际的可以下载的地方,着实比较过分,不过咱们可以另辟蹊径。
2309 0
【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例
|
缓存 Java API
API接口性能优化管理
在数字化时代,API性能优化对于提升软件效率和用户体验至关重要。本文介绍了多种优化方法:配置优化包括调整JVM参数等;代码层面减少重复调用并批量操作数据库;池化技术如线程池和HTTP连接池能有效利用资源;数据库优化通过索引提高查询速度;异步处理则使主流程业务不受阻塞;缓存策略如Redis缓存减少数据库访问;可观测性工具如日志平台和APM帮助监控性能。综合运用这些方法,可根据业务需求持续调整优化,显著提升API性能及用户体验。