第一章 基本概念_假设有n个布尔变量x1, ..., xn,输出其所有可能的真值集合

例如,如果n=2, 有四种可能:<true, true>, <true, false>,<false, true>和<false, false>。编写C语言函数实现之。

分析:对于任意一个正整数n,所有可能的情况为2^n种,即n个2相乘。对于每一个元素,有两种可能:true或者false,我们可以将其中一种结果设定为一个长度为n的序列,在每一位上,它的值只能是true或false。可以用下面给出的简单算法来产生其所有可能的序列,即长度为n的序列由下列序列组成:(True,(n-1)序列所有结果),(False,(n-1)序列所有结果)。由此我们自然想到使用递归,这表明,如果能够解决n-1个元素的序列,就可以解决n个元素的序列。

#include <stdio.h>  
#include <stdlib.h>
#define Max_size 100 /*最多可以使得n=100 */  
 
void value(char *, int i, int n);  
 
void main(void)  
{  
int n, k;  
char list[Max_size]; /*用字符数组存储字符,‘T’代表true, ‘F’代表false*/  
printf("input the number of Booleans: \n");  
scanf("%d", &n);  
if (n<1 || n>Max_size)  
{  
   printf("\nImproper number n!\n");  
   exit(1);  
}  
for(k=0; k<n; k++)  
{  
   list[k] = ‘T‘;  
}  
value(list, 0, n-1);  
}  
 
void value (char *list, int i, int n)  
{  
int j;  
if (i==n+1) /*已经递归完毕, 输出序列*/  
{  
   for (j=0; j<=n; j++)  
   {  
    printf("%c", list[j]);  
   }  
   printf("     ");  
}  
else {  
   list[i] = ‘T‘;  
   value(list, i+1, n);  
   list[i] = ‘F‘;  
   value(list, i+1, n);  
}  
}

时间: 2024-12-25 18:04:37

第一章 基本概念_假设有n个布尔变量x1, ..., xn,输出其所有可能的真值集合的相关文章

第一章 基本概念_因子和。给一个正整数n,请求n所有因子的累加和

#include <stdio.h>//1172.因子和 #include <math.h> int main() {    long n;          int i, sum;          while(scanf("%d", &n)&&n!=0)        {              sum = 0;              if(n==1){printf("1\n");continue;}    

第一章 基本概念_利用霍纳规则求多项式的值(递归)

#include <stdio.h>  #include <stdlib.h>  #define LEN 3  int hornor(int [],int,int);  int main()  {     int a[3]={1,2,3};//数组表示多项式的系数     int x=2;//多项式的自变量值     int result=0;//存放结果     result = hornor(a,0,2);  //3*2^2+2*2^2+1*2^0              

第一章 基本概念_递归的全排列算法

void perm(char *list,int i,int n){    int j,temp;    if(i==n){        for(j=0;j<=n;j++)            printf("%c",list[j]);        printf("    ");    }else{        for(j=i;j<=n;j++){            SWAP(list[i],list[j],temp);          

HttpClient 4.3教程 第一章 基本概念

HttpClient 4.3教程 第一章 基本概念 Posted on 2013 年 10 月 9 日 1.1. 请求执行 HttpClient最基本的功能就是执行Http方法.一个Http方法的执行涉及到一个或者多个Http请求/Http响应的交互,通常这个过程都会自动被HttpClient处理,对用户透明.用户只需要提供Http请求对象,HttpClient就会将http请求发送给目标服务器,并且接收服务器的响应,如果http请求执行不成功,httpclient就会抛出异样. 下面是个很简单

数据结构之第一章一些概念

1数据:所有存入到几算计内的以及被计算机使用的符号,都可以叫  数据. 2 数据元素:是数据的基本单位,通常作为一个整体出现,一个数据元素包含多个数据项. 3 数据对象:是性质相同数据元素的集合,是一个数据的子集. 4 数据结构:是数据间的逻辑关系,形式定义为一个二元组. 5 数据间的逻辑结构分为  1 线性结构 2 树形结构 3 网状结构 (图装结构) (1)线性结构: 数据间存在着一个对一个的关系,有且仅有一个为开始节点和终端节点,除了开始节点外,每个节点有且仅有一个前驱节点,除终端节点外,

ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉Windows的基本操作 · 接触过地理信息系统的概念 · 理解地理数据的特点 1.2 预期效果 我们期望用户在阅读完本指南后对以下知识有一定的了解: · 了解ArcGIS for Desktop的组成与功能 · 熟悉使用ArcGIS for Desktop进行数据编辑.整饰和输出的流程 · 如何使用

2017.06.29 数据挖掘概念知识第一章

第一章1.数据仓库技术:1.数据清理 2.数据集成 3.联机分析处理2.数据挖掘(知识发现)过程P5详见图 1.数据清理 2.数据集成 3.数据选择 4.数据变换 5.数据挖掘 6.模式评估 7.知识表示3.大数据的特点: 1.量大 2.种类多 3.处理速度快 4价值密度低 5.复杂性4.类与概念描述方法过程: 1.数据特征化 2.数据区分 3.数据特征化和区分5.分类如何提供导出的模型: 导出的模型可以多种形式表示:分类规则.决策树.数学公式或神经网络6.一个模型是有趣的: 1.易于被人理解

疯狂Android第一章:Android环境配置以及基本概念

第一章 无关痒痛:Android Studio安装,配置,基本功能介绍! 重点内容:Android应用基本结构分析. 基础概念部分(只需知道作用,原理后见代码): Activity:安卓系统中负责与用户界面交互的一个组件类,它主要的功能就是显示一个页面通过它的setContent(View);方法将View对象或View对象的资源ID等方式将View对象的布局内容显示出来,而自己是一个view的间接容器直接容器是Window,Activity具有操作窗口的许多方法,例如窗口主题,风格等等. Vi

《大道至简》第一章——编程的精义_读后感(Java伪代码形式)

<大道至简>第一章——编程的精义_读后感(Java伪代码形式)1.愚公移山//愚公为团体的项目组织者.团体经理.编程人员.技术分析师等//子孙荷担者三人为三名技术人员//遗男为外协//目标为“毕力平险,指通豫南,达于汉阴”public class Ygys; //定义一个名为Ygys的类{String 人员;public static void main(String[] args)//定义主程序{人员初始化人员= new String();while(山没平){if(人员死){人员 = 愚公