当前位置:文档之家› 约瑟夫环实习报告

约瑟夫环实习报告

约瑟夫环实习报告
约瑟夫环实习报告

约瑟夫环

实习报告

题目:编制一个程序求出约瑟夫环问题的出列顺序。

班级:06计算机A班姓名:林树地学号:0615111044 完成日期:2008-05-01

顺序表实现

一、需求分析

1. 本程序需要由用户在键盘上输入程序中的相关数据。

2. 先输入初始密码m (m>0)和环中人的个数n(n<50),再依次输入每个人的密码。输

入形式是以“回车”为结束标志的整型数。

3. 依次输出约瑟夫环中的出列者的编号。

4. 测试数据:

初值m=20,n=7,7个人的密码依次为:3,1,7,2,4,8,4。

出列顺序应为6,1,4,7,2,3,5。

二、概要设计

以顺序表表示环中的人:

1.顺序表数据类型定义为:

ADT sqlist{

数据对象:D={ a i|a i∈Elemtype,i=1,2,……n;n≥0}

数据关系:R1={| a i-1,a i∈D,i=2,……,n}

基本操作:

initlist_sq(&l)

操作结果:构造一个空的顺序表

}ADT sqlist

2.本程序包含两个模块

①主程序模块

void main(){

接受命令;

处理命令;

}

②顺序表单元模块——实现顺序表抽象数据类型;

各模式块之间的调用关系如下;

主程序模块→顺序表单元模块

三、详细设计

1.顺序表类型

typedef struct{

int elem[50];//存密码

int length;

}sqlist;

2.主函数和其他函数的伪码算法

void main()

{

int m,n;//m为密码,n为小孩个数

cout<<"请输入初始密码m和人数n(n不大于50):";

while(n<1||n>50)

{

cin>>m>>n;

if(n<1||n>50) cout<<"人数不合法,请重输"<

}

sqlist Jos;

initlist_sq(Jos);// 初始化线性表

cout<<"请依次输入"<

for(;Jos.length

cin>>Jos.elem[Jos.length];//存密码

cout<<"出列顺序为:";

int i=-1;//i为数组下标(下一值为0)

for(int k=0;k

{

for(int j=0;j

{

i=(i+1)%n;//对下标加1求模

if(Jos.elem[i]!=0)//判断是否已出列

j++;

}

cout<

m=Jos.elem[i];//输出已出列的编号

Jos.elem[i]=0;//标识已出列

}

cout<

}

void initlist_sq(sqlist &l){

l.length=0;

}

3.函数调用关系:

main

InitList

四、调试分析

1.刚开始忽略了对输入数据合法性的判断,可能造成存储空间不足。

2.算法时空分析

主函数中,时间复杂度为O(n*m)。

五、测试结果

循环链表实现

一、需求分析

1. 本程序需要由用户在键盘上输入程序中的相关数据。

2. 先输入初始密码m (m>0)和环中人的个数n (n>0),再依次输入每个人的密码。输入

形式是以“回车”为结束标志的整型数。

3. 依次输出约瑟夫环中的出列者的编号。

4. 测试数据:

初值m=20,n=7,7个人的密码依次为:3,1,7,2,4,8,4。

出列顺序应为6,1,4,7,2,3,5。

二、概要设计

以循环链表存储结构表示环中的人。

1.本程序包含两个模块

①主程序模块

void main(){

初始化;

接受命令;

②顺序表单元模块——实现循环链表抽象数据类型;

各模式块之间的调用关系如下;

主程序模块→循环链表单元模块

三、详细设计

1.元素类型、节点类型和指针类型

typedef struct Lnode

int data;

int secret;

struct Lnode* next;

}*p,*q,*t,h,*head,*linklist;//p为当前指针,head为头指针,q为跟随指针,h 为头节点

2. 主函数的算法

void main()

{

cout<<"请输入人数n,报数上限值m和这n个人的密码:"<

int m,n,i;

string s;vectora;

getline(cin,s);

istringstream sin(s);

for(int b;sin>>b;a.push_back(b));

cout<<"您输入这n个人的密码是:";

for(i=2;i

cout<

cout<

h.next=NULL;

head=&h;

p=head;

n=a[0];

//创建循环链表

for(i=1;i<=n;i++)

{

p->next=(Lnode*)malloc(sizeof(Lnode));

p=p->next;

p->data=i;

p->secret=a[i+1];

if(i!=n)

p->next=NULL;

else

{

p->next=head->next;

p=p->next;

}

}

//小孩出列

q=head;

m=a[1];

w hile(p->next!=p)

for(i=1;i

{

p=p->next;

q=q->next;

}

cout<data<<" ";

m=p->secret;

q->next=p->next;

t=p;

p=p->next;

free(t);

}

cout<data<

}函数调用关系

main

四、调试分析

1.算法的时空分析:

主函数中时间复杂度为O(n*m)。

五、测试结果

环境工程原理思考题

页眉 环境工程原理思考题 第一章绪论 1.“环境工程学”的主要研究对象是什么? 2. 去除水中的溶解性有机污染物有哪些可能的方法?它们的技术原理是什么? 3. 简述土壤污染治理的技术体系。 4. 简述废物资源化的技术体系。 5. 阐述环境净化与污染控制技术原理体系。 6. 一般情况下,污染物处理工程的核心任务是:利用隔离、分离和(或)转化技术原理,通过工程手段(利用各类装置),实现污染物的高效、快速去除。试根据环境净化与污染防治技术的基本原理,阐述实现污染物高效、快速去除的基本技术路线。 第二章质量衡算与能量衡算 第一节常用物理量 1.什么是换算因数?英尺和米的换算因素是多少? 2.什么是量纲和无量纲准数?单位和量纲的区别是什么? 3.质量分数和质量比的区别和关系如何?试举出质量比的应用实例。 4.大气污染控制工程中经常用体积分数表示污染物的浓度,试说明该单位的优点,并阐述与质量浓度的关系。 5.平均速度的涵义是什么?用管道输送水和空气时,较为经济的流速范围为多页

页眉 少? 第二节质量衡算 1.进行质量衡算的三个要素是什么? 2.简述稳态系统和非稳态系统的特征。 3.质量衡算的基本关系是什么? 4.以全部组分为对象进行质量衡算时,衡算方程具有什么特征? 5.对存在一级反应过程的系统进行质量衡算时,物质的转化速率如何表示? 第三节能量衡算 1.物质的总能量由哪几部分组成?系统内部能量的变化与环境的关系如何?2.什么是封闭系统和开放系统? 3.简述热量衡算方程的涵义。 4.对于不对外做功的封闭系统,其内部能量的变化如何表现? 5.对于不对外做功的开放系统,系统能量能量变化率可如何表示? 第三章流体流动 第一节管流系统的衡算方程 1.用圆管道输送水,流量增加1倍,若流速不变或管径不变,则管径或流速如何变化?

最新《环工原理》部分课后作业及答案

第一篇 第二章 质量衡算与能量衡算 2.1 某室内空气中O 3的浓度是0.08×10-6 (体积分数),求: (1)在1.013×105 Pa 、25℃下,用μg/m 3 表示该浓度; (2)在大气压力为0.83×105 Pa 和15℃下,O 3的物质的量浓度为多少? 解:(1)理想气体的体积分数与摩尔分数值相等 由题,在所给条件下,1mol 空气混合物的体积为 V 1=V 0·P 0T 1/ P 1T 0 =22.4L ×298K/273K =24.45L 所以O 3浓度可以表示为 0.08×10-6 mol ×48g/mol ×(24.45L )-1 =157.05μg/m 3 (2)由题,在所给条件下,1mol 空气的体积为 V 1=V 0·P 0T 1/ P 1T 0 =22.4L ×1.013×105 Pa ×288K/(0.83×105 Pa ×273K )=28.82L 所以O 3的物质的量浓度为 0.08×10-6 mol/28.82L =2.78×10-9mol/L 2.2 假设在25℃和1.013×105 Pa 的条件下,SO 2的平均测量浓度为400μg/m 3 ,若允许值0.14×10-6 ,问是否符合要求? 解:由题,在所给条件下,将测量的SO 2质量浓度换算成体积分数,即 3396 5 108.31429810400100.15101.0131064 A A RT pM ρ--???=??=??? 大于允许浓度,故不符合要求 2.6 某一段河流上游流量为36000m 3 /d ,河水中污染物的浓度为3.0mg/L 。有一支流流量为10000m 3 /d ,其中污染物浓度 为30mg/L 。假设完全混合。求: (1)求下游的污染物浓度; (2)求每天有多少kg 污染物质通过下游某一监测点。 解:(1)根据质量衡算方程,下游污染物浓度为 1122 12 3.0360003010000 /8.87/3600010000 V V m V V q q mg L mg L q q ρρρ+?+?= = =++ (2)每天通过下游测量点的污染物的质量为 312()8.87(3600010000)10/408.02/m V V q q kg d kg d ρ-?+=?+?= 2.7 某一湖泊容积10×106m 3 ,上游有一未被污染的河流流入该湖泊,流量为50m 3 /s 。一工厂以5 m 3 /s 的流量向湖泊排

最新环工原理思考题!答案

十一章 第一节 (1) 快速去除污染物的关键是什么? (2) 反应器的一般特性主要指哪几个方面? 指反应器内物料的流动状态、混合状态以及质量和能量传递性能等,它们取决于反应器的结构形式、操作方式等。 (3) 反应器研究开发的主要任务是什么? (4) 什么是间歇操作、连续操作和半连续操作?它们一般各有哪些主要特点? 1.间歇操作:将反应原料一次加入反应器,反应一段时间或达到一定的反应程度后一 次取出全部的反应物料,然后进入下一轮操作。 间歇操作的主要特点: (1)操作特点:反应过程中既没有物料的输入,也没有物料的输出,不存在 物料的进与出。 (2)基本特征:间歇反应过程是一个非稳态的过程,反应器内组成随时间变化而变化。 (3)主要优点:操作灵活,设备费低,适用于小批量生产或小规模废水的处理。 (4)主要缺点:设备利用率低,劳动强度大,每批的操作条件不易相同,不便自动控制。 2.连续操作:连续地将原料输入反应器,反应产物也连续地流出反应器。 特点: (1)操作特点∶物料连续输入,产物连续输出,时刻伴随着物料的流动。 (2)基本特征∶连续反应过程是一个稳态过程,反应器内各处的组成不随时间变化。(反应组分、浓度可能随位置变化而变化。) (3)主要优点∶便于自动化,劳动生产率高,反应程度与产品质量较稳定。 规模大或要求严格控制反应条件的场合,多采用连续操作。 (4)主要缺点∶灵活性小,设备投资高。 3.半连续操作:原料与产物中的一种或一种以上为连续输入或输出,而其它成分分批 加入或取出的操作。 特点:半间歇操作具有间歇操作和连续操作的某些特点。反应器内的组成随时间变化而变化。 (5)什么是空间时间和空间速度?它们所表达的物理意义分别是什么? 空间时间:反应器有效体积(V)与物料体积流量(q v)之比值. 空间速度:单位反应器有效体积所能处理的物料的体积流量. (6) 一般情况下,反应器内的流体流动状态会对反应结果产生影响,为什么? (7) 根据反应物料的流动与混合状态,反应器可分为哪些类型。 理想流反应器和非理想流反应器;完全混合流(全混流)反应器和推流反应器。 (8) 反应器设计的基本内容包括哪几个方面?它通常用到哪几类基本方程? 基本内容: 选择合适的反应器型式;确定最佳的操作条件;计算达到规定的目标所需要

约瑟夫环实验报告

一.需求分析 1.约瑟夫环(Joseph)问题的一种描述是:编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,有用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在其后。 3.程序执行的命令包括: 1)输入初始密码和人数2)输入所有人的密码3)显示输入的所有人的编号及相应的密码4)输出出列密码及编号5)结束 4.测试数据 (1)m=20, n=7, 7个人的密码依次为3,1,7,2,4,8,4 (2)m=20,n=1 (3)m=20,n=0 前面一组为常规数据,后面两组为边缘数据 二、概要设计 为实现上述功能,应以有序单向循环链表表示约瑟夫环。为此,需要有一个抽象数据类型。该抽象数据类型的定义为: ADT LinkList { 数据对象:D={ ai | ai ∈termset,i=1,2,……n,n>=0}, termset中每个元素包含编号,密码,和一个指向下一节点的指针数据关系:R1={ | ai-1, ai ∈D , i=2,……n} 基本操作: LinkList EvaluList(int n);//对单向循环链表进行尾插入赋值 int size(LinkList L);//求链表的节点个数 Status ScanList(LinkList L);//遍历单向循环链表 Status Joseph(LinkList &L,int m);//约瑟夫环的实现 } 此抽象数据类型中的一些常量如下:#define TRUE 1 #define FALSE 0 #define OK 1

环境工程原理第二版课后答案

第I 篇 习题解答 第一章 绪论 简要概述环境学科的发展历史及其学科体系。 解:环境学科是随着环境问题的日趋突出而产生的一门新兴的综合性边缘学科。它经历了20世纪60年代的酝酿阶段,到20世纪70年代初期从零星的环境保护的研究工作与实践逐渐发展成为一门独立的新兴学科。 环境学科是一门正在蓬勃发展的科学,其研究范围和内涵不断扩展,所涉及的学科非常广泛,而且各个学科间又互相交叉和渗透,因此目前有关环境学科的分支学科还没有形成统一的划分方法。图1-1是环境学科的分科体系。 图1-1 环境学科体系 简要阐述环境工程学的主要任务及其学科体系。 解:环境工程学作为环境学科的一个重要分支,主要任务是利用环境学科以及工程学的方法,研究环境污染控制理论、技术、措施和政策,以改善环境质量,保证人类的身体健康和生存以及社会的可持续发展。 图1-2是环境工程学的学科体系。 图1-2 环境工程学的学科体系 环境工程学 环境净化与污染控制技术及原理 生态修复与构建技术及原理 清洁生产理论及技术原理 环境规划管理与环境系统工程 环境工程监测与环境质量评价 水质净化与水污染控制工程 空气净化与大气污染控制工程 固体废弃物处理处置与管理 物理性污染控制工程 土壤净化与污染控制技术 废物资源化技术 环境学科体系环境科学 环境工程学 环境生态学 环境规划与管理

去除水中的悬浮物,有哪些可能的方法,它们的技术原理是什么 解:去除水中悬浮物的方法主要有:沉淀、离心分离、气浮、过滤(砂滤等)、过滤(筛网过滤)、反渗透、膜分离、蒸发浓缩等。 上述方法对应的技术原理分别为:重力沉降作用、离心沉降作用、浮力作用、物理阻截作用、物理阻截作用、渗透压、物理截留等、水与污染物的蒸发性差异。 空气中挥发性有机物(VOCs)的去除有哪些可能的技术,它们的技术原理是什么 解:去除空气中挥发性有机物(VOCs)的主要技术有:物理吸收法、化学吸收法、吸附法、催化氧化法、生物法、燃烧法等。 上述方法对应的技术原理分别为:物理吸收、化学吸收、界面吸附作用、氧化还原反应、生物降解作用、燃烧反应。 简述土壤污染可能带来的危害及其作用途径。 解:土壤污染的危害及其作用途径主要有以下几个方面:①通过雨水淋溶作用,可能导致地下水和周围地表水体的污染;②污染土壤通过土壤颗粒物等形式能直接或间接地为人或动物所吸入;③通过植物吸收而进入食物链,对食物链上的生物产生毒害作用等。 环境净化与污染控制技术原理可以分为哪几类它们的主要作用原理是什么解:从技术原理上看,环境净化与污染控制技术原理可以分为“隔离技术”、“分离技术”和“转化技术”三大类。隔离技术是将污染物或者污染介质隔离从而切断污染物向周围环境的扩散,防止污染近一步扩大。分离技术是利用污染物与污染介质或其它污染物在物理性质或化学性质上的差异使其与介质分离,从而达到污染物去除或回收利用的目的。转化技术是利用化学或生物反应,使污染物转化成无害物质或易于分离的物质,从而使污染介质得到净化与处理。 《环境工程原理》课程的任务是什么

约瑟夫环实验报告

课程实验报告 题目:2016.4.6 学生姓名:黄玲 学生学号:201408070105 专业班级:智能1401 指导老师:骆嘉伟 完成日期:2016.4.6

一.需求分析 1.本实验基本要求是用数组来实现线性表,再基于线性表的基本操作(插入、删除、修改等)来实现约瑟夫问题 2.由键盘输入总人数n和出列报数m 3.在DOS界面上显示依次出圈的人的编号和最后一个留下的人,在当前文件夹里生成一个文本文件,里面是相同的输出。 4.测试数据: 输入: 10,3 输出: 3 6 9 2 7 1 8 5 10 4//DOS 3 6 9 2 7 1 8 5 10 4//TXT 二.概要设计 §抽象数据类型 为实现上述程序的逻辑功能,应以整数存储用户的输入 用线性表实现,线性表定义如下: ADT LISt 数据对象:整数 基本操作: AList(100);//构建一个最大人数为100的顺序表(数组)来存储人 Next();//指向下一个人 moveStart();//回到第一个人继续数数 Length();//查看圈里还剩多少人 currPos();//查看当前数到人的编号 getValue();//查看当前编号的人是否还在圈内 §程序的流程 以书上的代码案例为参考,编写线性表的ADT在继承线性表的基础上编写顺序表(数组)的类文件编写主函数,创建类的对象,完成程序 三.详细设计 §物理数据类型 将大小为n的数组赋好值,其值为他本身的编号,即数组下标。 §程序思路的具体步骤实现 设一个标志点,在数组中移动,同时报数,当报到m时,当前人的值变为0,出圈,然后继续移动,重新数。当数到值为0的人时自动跳过(已出圈),当数

20XX环工原理思考题!答案

十^一早 第一节 (1) 快速去除污染物的关键是什么? (2) 反应器的一般特性主要指哪几个方面? 指反应器内物料的流动状态、混合状态以及质量和能量传递性能等,它们取决于反应器的结构形式、操作方式等。 (3) 反应器研究开发的主要任务是什么? (4) 什么是间歇操作、连续操作和半连续操作?它们一般各有哪些主 要特点? 间歇操作:将反应原料一次加入反应器,反应一段时间或达到一定的 反应程度后一次取出全部的反应物料,然后进入下一轮操作。 间歇操作的主要特点: (1)操作特点:反应过程中既没有物料的输入,也没有物料的输出,不存在物料的进与出。 基本特征:间歇反应过程是一个非稳态的过程,反应器内组成随时间变化而变化。 主要优点:操作灵活,设备费低,适用于小批量生产或小规模废水的 处理。 主要缺点:设备利用率低,劳动强度大,每批的操作条件不易相同, 不便自动控制。

连续操作:连续地将原料输入反应器,反应产物也连续地流出反应器 特点: (1)操作特点:物料连续输入,产物连续输出,时刻伴随着物料的流动。 1 / 12 基本特征:连续反应过程是一个稳态过程,反应器内各处的组成不随时间变化。(反应组分、浓度可能随位置变化而变化。) 主要优点:便于自动化,劳动生产率高,反应程度与产品质量较稳定。规模大或要求严格控制反应条件的场合,多采用连续操作。 主要缺点:灵活性小,设备投资高。 半连续操作:原料与产物中的一种或一种以上为连续输入或输出,而其它成分分批加入或取出的操作。 特点:半间歇操作具有间歇操作和连续操作的某些特点。反应器内的组成随时间变化而变化。 什么是空间时间和空间速度?它们所表达的物理意义分别是什么?空间时间:反应器有效体积(V与物料体积流量(qv)之比值. 空间速度:单位反应器有效体积所能处理的物料的体积流量. (6)一般情况下,反应器内的流体流动状态会对反应结果产生影响,为什么? (7)根据反应物料的流动与混合状态,反应器可分为哪些类型。

约瑟夫环课程设计实验报告

《数据结构》 课程设计报告 课程名称:《数据结构》课程设计课程设计题目:joseph环 姓名: 院系:计算机学院 专业: 年级: 学号: 指导教师: 2011年12月18日

目录 1 课程设计的目的 (2) 2 需求分析 (2) 3 课程设计报告内容 (3) 1、概要设计 (3) 2、详细设计 (3) 3、调试分析 (x) 4、用户手册 (x) 5、测试结果 (6) 6、程序清单 (7) 4 小结 (10) 1、课程设计的目的 (1)熟练使用C++编写程序,解决实际问题; (2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 2、需求分析 1、问题描述: 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 2、要求: 利用不带表头结点的单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 3、测试数据: m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么? 输出形式:建立一个输出函数,将正确的输出序列

3、课程设计报告内容 概要设计: 在理解了题目后,我先想到的是我们所学的单链表,利用单链表先建立循环链表进行存贮,建立完循环链表后,我将所要编写的函数分为了两块,一块是经过学过的单链表改编的循环链表的基本操作函数,还有一块是运行约瑟夫环的函数。 详细设计: 我先建立一个结构体,与单链表一样,只是多了一个存密码的code域 struct LinkNode { int data; /删除的是尾结点时(不知道为什么我写程序里总是编译出现错误){ q->next=head; //重新链接 delete a; len--; return out; } else { q->next=a->next; delete a; len--; return out; } } } } 5、测试结果:

环工原理思考题

4热量传递 1)什么是热传导? (2)什么是对流传热?分别举出一个强制对流传热和自然对流传热的实例。 (3)简述辐射传热的过程及其特点。 (4)试分析在居室内人体所发生的传热过程,设室内空气处于流动状态。 (5)若冬季和夏季的室温均为18℃,人对冷暖的感觉是否相同?在哪种情况下觉得更暖和?为什么? (1)简述影响对流传热的因素。 (2)简述对流传热的机理、传热阻力的分布及强化传热的措施。 (3)为什么流体层流流动时其传热过程较静止时增强? (4) 传热边界层的范围如何确定?试分析传热边界层与流动边界层的关系。 (5)试分析影响对流传热系数的因素。 (6) 分析圆直管内湍流流动的对流传热系数与流量和管径的关系,若要提高对流传热系数,采取哪种措施最有效? (7)流体由直管流入短管和弯管,其对流传热系数将如何变化?为什么? (8)什么情况下保温层厚度增加反而会使热损失加大?保温层的临界直径由什么决定? (9)间壁传热热阻包括哪几部分?若冷热流体分别为气体和液体,要强化换热过程,需在哪一侧采取措施? (10)什么是传热效率和传热单元数? 1)分析热辐射对固体、液体和气体的作用特点。 (2)比较黑体和灰体的特性及其辐射能力的差异。 (3) 温度对热辐射和辐射传热的影响。 (4)分析物体辐射能力和吸收能力的关系。 (5)简述气体发射和吸收辐射能的特征,分析温室效应产生的机理。 1)简述换热器的类型。 (2)什么是间壁式换热器,主要包括哪几种类型? (3)列管式换热器式最常用的换热器,说明什么是管程、壳程,并分析当气体和液体换热时,气体宜通入哪一侧? (4)简述增加传热面积的方法。 (5)试分析提高间壁式换热器传热系数的途径。 5质量传递 (1)什么是分子扩散和涡流扩散? (2)简述费克定律的物理意义和适用条件。 (3)简述温度、压力对气体和液体分子扩散系数的影响。 (4)对于双组分气体物系,当总压和温度提高1倍时,分子扩散系数将如何变化? (5)分析湍流流动中组分的传质机理。 (1)什么是总体流动?分析总体流动和分子扩散的关系。 (2)在双组分混合气体的单向分子扩散中,组分A的宏观运动速度和扩散速度的关系? (3)单向扩散中扩散组分总扩散通量的构成及表达式。

数据结构实验报告(约瑟夫环)

《数据结构》课程实验 实验报告 题目:Joseph问题求解算法的设计与实现专业:计算机科学与技术 班级: 姓名: 学号: 完成日期:

一、试验内容 约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 二、试验目的 掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。 三、流程图 输入总人数n 创建并初始化 n个结点 输入第一个报 的数key n==0 报数过程 输出出列者 的编号及密 码 结束 n--

四、源程序代码 //Joseph问题求解算法的设计与实现 #include #include struct list { int num,code; struct list *next; }; void main() { printf("Joseph问题求解算法的设计与实现\n \n"); int i,j,m=1; int key; // 密码. int n; //人数 . list *p,*s,*head; head=(list *)malloc(sizeof(list)); //为头结点分配空间. p=head; printf("输入人的总个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { key=rand() % 100; printf("第%d个人的密码:%d\n",i,key); s=p; p=(list *)malloc(sizeof(list)); //创建新的结点. s->next=p; p->num=i; p->code=key; } p->next=head->next; p=head; head=head->next; free(p); //释放头结点. p=head; do{ printf("\n第%d号成员的密码为:%d",p->num,p->code); //输出链表. p=p->next; }while(p!=head); printf("\n\n输入第一个报的数:\n"); scanf("%d",&key); printf("\n出列顺序为:\n"); do

数据结构实验报告(约瑟夫环)

基础成绩:82分《数据结构》课程实验 实验报告 题目:Joseph问题求解算法的设计与实现 专业:网络工程 班级:网络102 姓名:张晨曦 学号: 102534 完成日期:2012/6/20 一、试验内容

- 约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 二、试验目的 掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。 三、流程图 struct list {

- int num,code; struct list *next; }; void main() { printf("Joseph问题求解算法的设计与实现\n \n"); int i,j,m=1; int key; // 密码. int n; //人数. list *p,*s,*head; head=(list *)malloc(sizeof(list)); //为头结点分配空间. p=head; //使指针指向头节点 printf("输入人的总个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("第%d个人的密码:\n",i); scanf("%d",&key); s=p; p=(list *)malloc(sizeof(list)); //创建新的结点. s->next=p; p->num=i; p->code=key; } p->next=head->next; p=head; head=head->next; free(p); //释放头结点. p=head; printf("\n\n输入初始值:\n"); scanf("%d",&key); printf("\n出列顺序为:\n"); do { j=1; p=head; while(jnext;//使P指向下一结点 j++; } //报数过程. i=p->num; key=p->code; printf("%d\n",i); s->next=p->next;

数据结构实验报告 约瑟夫环问题

信息学院 数据结构实验报告 学号:姓名:班级 课程名称:数据结构实验名称:约瑟夫环 实验性质:①综合性实验√②设计性实验③验证性实验实验时间:2017.10 试验地点: 本实验所用设备:PC及VS2010 【数据结构】: typedef struct _RingNode { int pos; // 位置 struct _RingNode *next; }RingNode, *RingNodePtr; 【算法思想】: 以单链表实现约瑟夫环 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。(约瑟夫环问题Josephus)。以环状链表实现 【算法描述】: void CreateRing(RingNodePtr pHead, int count) { RingNodePtr pCurr = NULL, pPrev = NULL; int i = 1; pPrev = pHead; while(--count > 0) { pCurr = (RingNodePtr)malloc(sizeof(RingNode)); i++; pCurr->pos = i; pPrev->next = pCurr; pPrev = pCurr; } pCurr->next = pHead; // 构成环状链表 }

void PrintRing(RingNodePtr pHead) { RingNodePtr pCurr; printf("%d", pHead->pos); pCurr = pHead->next; while(pCurr != NULL) { if(pCurr->pos == 1) break; printf("\n%d", pCurr->pos); pCurr = pCurr->next; } } void KickFromRing(RingNodePtr pHead, int m) { RingNodePtr pCurr, pPrev; int i = 1; // 计数 pCurr = pPrev = pHead; while(pCurr != NULL) { if (i == m) { // 踢出环 printf("\n%d", pCurr->pos); // 显示出圈循序 pPrev->next = pCurr->next; free(pCurr); pCurr = pPrev->next; i = 1; } pPrev = pCurr; pCurr = pCurr->next; if (pPrev == pCurr) { // 最后一个 printf("\n%d", pCurr->pos); // 显示出圈循序 free(pCurr); break; } i++; } } int main()

数据结构实验报告—约瑟夫问题求解

《计算机软件技术基础》实验报告 I —数据结构 实验一、约瑟夫斯问题求解 一、问题描述 1.实验题目:编号 1,2,....,n的n个人顺时针围坐一圈,每人持有一个密码(正整数)。 开始选择一个正整数作为报数上限m,从第一个人开始顺时针自 1 报数,报到m的人出列,将他的密码作为新的m值,从他在顺时针方向下一个人开始重新从 1 报数,直至所有人全部出列。 2. 基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序印出个人的编号。 3. 测试数据: n=7,7 个人的密码依次为:3,1,7,2,4,8, 4.m初值为6(正确的出列顺序 应为 6,1,4,77,2,3)。 二、需求分析 1. 本程序所能达到的基本可能: 该程序基于循环链表来解决约瑟夫问题。用循环链表来模拟n 个人围坐一圈,用链表 中的每一个结点代表一个人和他所代表的密码。在输入初始密码后m,对该链表进行遍历,直到第 m个结点,令该结点的密码值作为新的密码值,后删除该结点。重复上述过程,直至所有的结点被释放空间出列。 2. 输入输出形式及输入值范围: 程序运行后提示用户输入总人数。输入人数 n 后,程序显示提示信息,提示用户输入第 i个人的密码,在输入达到预定次数后自动跳出该循环。程序显示提示信息,提示用户输入 初始密码,密码须为正整数且不大于总人数。 3.输出形式 提示用户输入初始密码,程序执行结束后会输出相应的出列结点的顺序,亦即其编号。 用户输入完毕后,程序自动运行输出运行结果。 4.测试数据要求: 测试数据 n=7,7 个人的密码依次为:3, 1, 7, 2, 4, 8, 4。 m初值为 6(正确的出列 顺序应为6, 1, 4,7, 2, 3, 5)。 三、概要设计 为了实现上述功能,应用循环链表来模拟该过程,用结构体来存放其相应的编号和密码

20XX环境工程原理思考题

.. 环境工程原理思考题 第一章绪论 1.“环境工程学”的主要研究对象是什么? 2. 去除水中的溶解性有机污染物有哪些可能的方法?它们的技术原理是什么? 3. 简述土壤污染治理的技术体系。 4. 简述废物资源化的技术体系。 5. 阐述环境净化与污染控制技术原理体系。 6. 一般情况下,污染物处理工程的核心任务是:利用隔离、分离和(或)转化技术原理,通过工程手段(利用各类装置),实现污染物的高效、快速去除。试根据环境净化与污染防治技术的基本原理,阐述实现污染物高效、快速去除的基本技术路线。 第二章质量衡算与能量衡算 第一节常用物理量 1.什么是换算因数?英尺和米的换算因素是多少? 2.什么是量纲和无量纲准数?单位和量纲的区别是什么? 3.质量分数和质量比的区别和关系如何?试举出质量比的应用实例。 4.大气污染控制工程中经常用体积分数表示污染物的浓度,试说明该单位的优点,并阐述与质量浓度的关系。 5.平均速度的涵义是什么?用管道输送水和空气时,较为经济的流速范围为多专

业资料 .. 少? 第二节质量衡算 1.进行质量衡算的三个要素是什么? 2.简述稳态系统和非稳态系统的特征。 3.质量衡算的基本关系是什么? 4.以全部组分为对象进行质量衡算时,衡算方程具有什么特征? 5.对存在一级反应过程的系统进行质量衡算时,物质的转化速率如何表示? 第三节能量衡算 1.物质的总能量由哪几部分组成?系统内部能量的变化与环境的关系如何?2.什么是封闭系统和开放系统? 3.简述热量衡算方程的涵义。 4.对于不对外做功的封闭系统,其内部能量的变化如何表现? 5.对于不对外做功的开放系统,系统能量能量变化率可如何表示? 第三章流体流动 第一节管流系统的衡算方程 1.用圆管道输送水,流量增加1倍,若流速不变或管径不变,则管径或流速如何变化?

数据结构实验报告(实验二 约瑟夫环)

韶关学院 学生实验报告册 实验课程名称:数据结构与算法 实验项目名称:实验二线性表及其应用 约瑟夫环 实验类型(打√):(基础、综合、设计√) 院系:信息工程学院计算机系专业:***** 姓名:*** 学号:***** 指导老师:陈正铭 韶关学院教务处编制

一、实验预习报告内容

二、实验原始(数据)记录 实验时间:2007 年 4 月 4 日(星期三第7,8 节)实验同组人:

三、实验报告内容 2007年4 月5 日 注:1、如有个别实验的实验报告内容多,实验报告册页面不够写,或有识图,画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。 2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。

【源程序】 #include "stdio.h" #include "conio.h" #include "stdlib.h" /* 设立无头结点的单循环链表*/ typedef struct LNode{ int id; /* 编号*/ int pw; /* 密码*/ struct LNode *next; }LNode,*LinkList; void main() { int m,n,pw,i=1,j=0; /* m为初始报数值,n 为参与人数,pw为密码临时保存变量,i、j 为循环变量*/ LinkList L,p,q; /* L为链表头指针,p、q为临时指针*/ printf("输入人数n(n>0):"); scanf("%d",&n); printf("输入第1 人密码:"); scanf("%d",&pw); L=(LinkList)malloc(sizeof(struct LNode)); L->id=i; L->pw=pw; L->next=L; /* 创建首结点*/ q=L; /* q指向尾结点*/ p=L; /* p指向待删除结点前驱*/ for(i=2;i<=n;i++) /* 依次输入第2……第n个参与者密码*/ { printf("输入第%d 人密码:",i); scanf("%d",&pw); p=(LinkList)malloc(sizeof(struct LNode)); p->id=i; p->pw=pw; /* 创建第i个参与者结点p */ q->next=p; /* 在尾结点q后插入新结点p */ q=p; /* 更新q指向新的尾结点p */ p->next=L; /* 新结点p的后继指针指向首结点*/ } printf("输入约瑟夫环的初始报数值m:"); scanf("%d",&m); printf("出列顺序为:"); for(i=1;i<=n;i++) /* n个参与者依次按规则出列*/ { for(j=1;jnext; /* p 指向待删除结点前驱*/ q=p->next; /* q指向待删除结点*/ p->next=q->next; /* 删除结点q */ printf("%d\t",q->id); /* 输出被删结点编号*/ m=q->pw; /* m更新为被删结点的密码值*/ free(q); /* 释放被删结点q */ } getch(); }

环境工程原理第三版课后答案

1.2简要阐述环境工程学的主要任务及其学科体系。 解:环境工程学作为环境学科的一个重要分支,主要任务是利用环境学科以及工程学的方法,研究环境污染控制理论、技术、措施和政策,以改善环境质量,保证人类的身体健康和生存以及社会的可持续发展。 图1-2是环境工程学的学科体系。 1.3去除水中的悬浮物,有哪些可能的方法,它们的技术原理是什么? 解:去除水中悬浮物的方法主要有:沉淀、离心分离、气浮、过滤(砂滤等)、过滤(筛网过滤)、反渗透、膜分离、蒸发浓缩等。 上述方法对应的技术原理分别为:重力沉降作用、离心沉降作用、浮力作用、物理阻截作用、物理阻截作用、渗透压、物理截留等、水与污染物的蒸发性差异。 1.4空气中挥发性有机物(VOCs)的去除有哪些可能的技术,它们的技术原理是什么? 解:去除空气中挥发性有机物(VOCs)的主要技术有:物理吸收法、化学吸收法、吸附法、催化氧化法、生物法、燃烧法等。 上述方法对应的技术原理分别为:物理吸收、化学吸收、界面吸附作用、氧化还原反应、生物降解作用、燃烧反应。 1.5简述土壤污染可能带来的危害及其作用途径。 解:土壤污染的危害及其作用途径主要有以下几个方面:①通过雨水淋溶作用,可能导致地下水和周围地表水体的污染;②污染土壤通过土壤颗粒物等形式能直接或间接地为人或动物所吸入;③通过植物吸收而进入食物链,对食物链上的生物产生毒害作用等。 1.6环境净化与污染控制技术原理可以分为哪几类?它们的主要作用原理是什么? 解:从技术原理上看,环境净化与污染控制技术原理可以分为“隔离技术”、“分离技术”和“转化技术”三大类。隔离技术是将污染物或者污染介质隔离从而切断污染物向周围环境的扩散,防止污染近一步扩大。分离技术是利用污染物与污染介质或其它污染物在物理性质或化学性质上的差异使其与介质分离,从而达到污染物去除或回收利用的目的。转化技术是利用化学或生物反应,使污染物转化成无害物质或易于分离的物质,从而使污染介质得到净化与处理。 1.7《环境工程原理》课程的任务是什么? 解:该课程的主要任务是系统、深入地阐述环境污染控制工程,即水质净化与水污染控制工程、大气(包括室内空气)污染控制工程、固体废物处理处置与管理和资源化工程、物理性污染(热污染、辐射污染、噪声、振动)控制工程、自然资源的合理利用与保护工程、生态修复与构建工程以及其它污染控制工程中涉及到的具有共性的工程学基础、基本过程和现象以及污染控制装置的基本原理,为相关的专业课程打下良好的理论基础。 第二章质量衡算与能量衡算 2.1某室内空气中O3的浓度是0.08×10-6(体积分数),求: (1)在1.013×105Pa、25℃下,用μg/m3表示该浓度; (2)在大气压力为0.83×105Pa和15℃下,O3的物质的量浓度为多少? 解:理想气体的体积分数与摩尔分数值相等 由题,在所给条件下,1mol空气混合物的体积为V1=V0·P0T1/P1T0=22.4L×298K/273K=24.45L

C语言实现约瑟夫环

《约瑟夫环》实验报告 专业:网络工程班级 学号姓名 一、问题描述: 约瑟夫问题的一种描述是:编号为1,2,……,n点的n个人按顺时针方向围坐一个圈,每人持有一个密码。一开始选一个正整数作为报数上限值m,从第一个人开始从顺时针方向自1开始报数,报到m时停止。报到m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始从新从1报数,如此下去,直达所有人出列。 基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各人的编号。 测试数据:m的初始值为20;n=7,7个人的密码依次是3,1,7,2,4,8,4,首先m的值为6(正确的出列顺序为6,1,4,7,2,3,5) 二、程序设计的基本思想,原理和算法描述: 采用结构体定义单链表,格式为:struct Lnode {int number; int password; struct Lnode*next; }Lnode,*p,*q,*head; 其中number是人的排列序号,password是各人所持有的密码值,next是节点指针。Lnode是节点变量,p、q是节点,head是头指针。 程序的代码:定义变量n,i,m,j 输入人的数量n If n<=0或n>30 重新输入n值 当0password 尾指针指向头指针,形成循环链表 输入初始报数上限值m 当1<=j<=n时 循环找出报m的节点p 输出报m节点的编号p->number 将p->password赋给m值 删除此节点 结束 三、源程序及注释: #include #include struct Lnode/*定义链表*/ {int number;

[工学]环境工程原理第二版全部课后答案

第I篇习题解答 第一章绪论 1.1简要概述环境学科的发展历史及其学科体系。 解:环境学科是随着环境问题的日趋突出而产生的一门新兴的综合性边缘学科。它经历了20世纪60年代的酝酿阶段,到20世纪70年代初期从零星的环境保护的研究工作与实践逐渐发展成为一门独立的新兴学科。 环境学科是一门正在蓬勃发展的科学,其研究范围和内涵不断扩展,所涉及的学科非常广泛,而且各个学科间又互相交叉和渗透,因此目前有关环境学科的分支学科还没有形成统一的划分方法。图1-1是环境学科的分科体系。 图1-1 环境学科体系 1.2 简要阐述环境工程学的主要任务及其学科体系。 解:环境工程学作为环境学科的一个重要分支,主要任务是利用环境学科以及工程学的方法,研究环境污染控制理论、技术、措施和政策,以改善环境质量,保证人类的身体健康和生存以及社会的可持续发展。 图1-2是环境工程学的学科体系。 环境工程学环境净化与污染控制技术及原理 生态修复与构建技术及原理 清洁生产理论及技术原理 环境规划管理与环境系统工程 环境工程监测与环境质量评价 水质净化与水污染控制工程 空气净化与大气污染控制工程 固体废弃物处理处置与管理 物理性污染控制工程 土壤净化与污染控制技术 废物资源化技术 环境学科体系 环境科学 环境工程学 环境生态学 环境规划与管理

图1-2 环境工程学的学科体系 1.3 去除水中的悬浮物,有哪些可能的方法,它们的技术原理是什么? 解:去除水中悬浮物的方法主要有:沉淀、离心分离、气浮、过滤(砂滤等)、过滤(筛网过滤)、反渗透、膜分离、蒸发浓缩等。 上述方法对应的技术原理分别为:重力沉降作用、离心沉降作用、浮力作用、物理阻截作用、物理阻截作用、渗透压、物理截留等、水与污染物的蒸发性差异。 1.4 空气中挥发性有机物(VOCs)的去除有哪些可能的技术,它们的技术原理是什么? 解:去除空气中挥发性有机物(VOCs)的主要技术有:物理吸收法、化学吸收法、吸附法、催化氧化法、生物法、燃烧法等。 上述方法对应的技术原理分别为:物理吸收、化学吸收、界面吸附作用、氧化还原反应、生物降解作用、燃烧反应。 1.5 简述土壤污染可能带来的危害及其作用途径。 解:土壤污染的危害及其作用途径主要有以下几个方面:①通过雨水淋溶作用,可能导致地下水和周围地表水体的污染;②污染土壤通过土壤颗粒物等形式能直接或间接地为人或动物所吸入;③通过植物吸收而进入食物链,对食物链上的生物产生毒害作用等。 1.6 环境净化与污染控制技术原理可以分为哪几类?它们的主要作用原理是什么? 解:从技术原理上看,环境净化与污染控制技术原理可以分为“隔离技术”、“分离技术”和“转化技术”三大类。隔离技术是将污染物或者污染介质隔离从而切断污染物向周围环境的扩散,防止污染近一步扩大。分离技术是利用污染物与污染介质或其它污染物在物理性质或化学性质上的差异使其与介质分离,从而达到污染物去除或回收利用的目的。转化技术是利用化学或生物反应,使污染物转化成无害物质或易于分离的物质,从而使污染介质得到净化与处理。

环工原理思考题1

十一章 第一节 (2) 反应器的一般特性主要指哪几个方面? 反应器内反应物的流动状态、混合状态、浓度与温度分布、质量和能量传递性能等 (4) 什么是间歇操作、连续操作和半连续操作?它们一般各有哪些主要特点? 间歇操作:将反应原料一次加入反应器,反应一段时间或达到一定的反应程度后一次取出全部的反应物料,然后进入下一轮操作。操作特点:反应过程中既没有物料的输入,也没有物料的输出,不存在物料的进与出。 连续操作:连续地将原料输入反应器,反应产物也连续地流出反应器。操作特点∶物料连续输入,产物连续输出,时刻伴随着物料的流动。 半间歇操作/半连续操作:原料与产物中的一种或一种以上为连续输入或输出,而其它成分分批加入或取出的操作称为半间歇操作或半连续操作。主要特点:半间歇操作具有间歇操作和连续操作的某些特点。反应器内的组成随时间变化而变化。 (5) 什么是空间时间和空间速度?它们所表达的物理意义分别是什么? 空间时间:反应器有效体积(V )与物料体积流量(q v)之比值。 空间时间 τ=30s 表示了什么?每30s 处理与反应器有效体积相等的流体 空间速度(空速):单位反应器有效体积所能处理的物料的体积流量。 空间速度 表示单位时间内能处理几倍于反应器体积的物料,反映了一个反应器的强度。(SV =2 h-1表示1h 处理2倍于反应器体积的流体。) (7) 根据反应物料的流动与混合状态,反应器可分为哪些类型。 理想流反应器和非理想流反应器。完全混合流(全混流)反应器和推流反应器。 (8) 反应器设计的基本内容包括哪几个方面?它通常用到哪几类基本方程? 1、选择合适的反应器型式; 2、确定最佳的操作条件; 3、计算达到规定的目标所需要的反应体积,确定反应器的主要尺寸。 反应器设计用到的基本方程: 反应动力学方程、物料/能量/动量衡算式。 第二节 (1) 什么是膨胀因子?膨胀因子为1的反应体系,反应后系统的物质的量将如何变化?若是膨胀因子为0.5的反应体系,则如何变化? 膨胀因子:每消耗1mol 的某反应物所引起的反应系统总物质的量的变化量(δ)称为该反应物的膨胀因子。 膨胀因子为1时,系统增加1mol ;膨胀因子为0.5时系统增加0.5mol 。(膨胀因子可正可负) (2) 什么是简单反应和复杂反应?可逆反应属于哪一类反应?为什么? ? 简单反应(单一反应) 包括:可逆反应 ,因为可逆反应可以写出正反应和 负反应的两个计量方程,但两者并不独立,用其中一个计量方程即可表达反 应组分间的定量关系,因此亦可视为一种简单反应。 ? 复杂反应(复合反应)包括:平行反应,串联反应, 平行-串联反应 (4) 对于连续反应器,某一关键组分的转化率的一般定义是什么? x A=(q nA0-q nA)/q nA0=1-q nA/q nA0 式中q nA0和q nA 分别为流入和排出反应器的A 组分的量。 第三节 V /V q τ=V SV /q V =

相关主题
文本预览
相关文档 最新文档