《数据结构基础教程》习题及解答

《数据结构基础教程》习题及解答
《数据结构基础教程》习题及解答

《数据结构基础教程》习题解答(新)

第1章习题解答

一、填空

1.数据是指所有能够输入到计算机中被计算机加工、处理的符号的集合。

2.可以把计算机处理的数据,笼统地分成数值型和非数值型两大类。

3.数据的逻辑结构就是指数据间的邻接关系。

4.数据是由一个个数据元素集合而成的。

5.数据项是数据元素中不可再分割的最小标识单位,通常不具备完整、确定的实际意义,只是反映数据元素某一方面的属性。

6.数据是以数据元素为单位存放在内存的,分配给它的内存区域称为存储结点。

7.每个数据元素都具有完整、确定的实际意义,是数据加工处理的对象。

8.如果两个数据结点之间有着逻辑上的某种关系,那么就称这两个结点是邻接的。

9.在一个存储结点里,除了要有数据本身的内容外,还要有体现数据间邻接关系的内容。

10.从整体上看,数据在存储器内有两种存放的方式:一是集中存放在一个连续的内存存储区中;一是利用存储器中的零星区域,分散地存放在内存的各个地方。

11.在有些书里,数据的“存储结构”也称为数据的“物理结构”。

12.“基本操作”是指算法中那种所需时间与操作数的具体取值无关的操作。

二、选择

1.在常见的数据处理中,B 是最基本的处理。

A.删除B.查找C.读取D.插入

2.下面给出的名称中,A 不是数据元素的同义词。

A.字段B.结点C.顶点D.记录

3.D 是图状关系的特例。

A.只有线性关系B.只有树型关系

C.线性关系和树型关系都不D.线性关系和树型关系都4.链式存储结构中,每个数据的存储结点里D指向邻接存储结点的指针,用以反映数据间的逻辑关系。

A.只能有1个B.只能有2个C.只能有3个D.可以有多个5.本书将采用C 来描述算法。

A.自然语言B.流程图(即框图)C.类C语言D.C语言6.有下面的算法段:

for (i=0; i

k++;

其时间复杂度为B 。

A.O(1) B.O(n) C.O(log2n) D.O(n2)

三、问答

1.中国百家姓中的赵、钱、孙、李、周、吴、郑、王……等姓氏数据之间,是一种什么样的邻接关系,为什么?

答:是一种线性关系,因为这些姓氏之间符合关系的“有头有尾,顺序排列”的特点。

2.什么是数据结点?什么是存储结点?它们间有什么关系?

答:数据结点即是数据集合中的一个数据元素,存储结点是存放数据结点的内存单位。在存储结点里,不仅要存放数据结点的内容,还要(显式或隐式地)存放数据结点间的逻辑关系。

3.为什么说链式存储既提高了存储的利用率,又降低了存储的利用率?

答:由于链式存储是通过指针来体现数据元素之间的逻辑关系的,因此,存储结点可以不占用存储器的连续存储区。从这个意义上说,链式存储能够充分利用存储器中小的存储区,因此提高了存储器的利用率。另一方面,链式存储中的存储结点不仅要存放数据元素,还要占用适当的存储区来存放指针,这是一种额外的存储开销。从这个意义上说,链式存储降低了存储器的利用率。

4.列举几个数据之间具有树型结构的实际例子。

答:学校各级管理之间,是一种分支层次结构;一本书的书目,是一种分支层次结构。

5.判断如下除法过程是否是一个算法,为什么:

(1)开始;

(2)给变量m赋初值5,给变量n赋初值0;

(3)m=m/n;

(4)输出m;

(5)结束。

答:因为0不能为除数,本题第(3)步不具有有效性,所以它不是一个算法。但如果n的初值不为0,则是一个正确的算法。

四、应用

1.用类C语言中的do-while语句,描述输出整数1、2、3、……、9、10的过程。

答:算法编写如下。

void num ()

{

i=1;

do

{

printf (“i = %d\n”, i );

i = i +1;

} while (i<= 10);

}

2.用类C语言中的if-else语句,编写算法,描述当输入的数据大于等于0时,输出信息:“输入的是正数”;当输入的数据小于0时,输出信息:“输入的是负数”。

答:算法编写如下。

void judge ()

{

scanf (“%d\n”, &x);

if (x>=0)

printf (“输入的是正数”);

else

printf (“输入的是负数”);

}

3.分析算法段中标有记号“#1”和“#2”的基本操作的执行次数:

for ( i=0; i

for (j=0; j

{

#1 y=1;

for (k=0; k

#2 y=y+1;

}

答:标有记号“#1”的基本操作的执行次数是:n2;标有记号“#2”的基本操作的执行次数是:n3。

4.给出下面3个算法段的时间复杂度:

(1)x++;

(2)for (j=1; j

x++;

(3)for (j=1; j<=n; j++)

{

printf (“j=%”, j);

for (k=j; k<=n; k++)

x++;

}

答:(1)的时间复杂度为O(1);

(2)的时间复杂度O(n);

(3)中“printf (“j=%”, j);”执行次数的数量级为O(n),“x++;”执行次数是:

n+(n-1)+(n-2)+……+2+1 = n(n+1)/2

其数量级为O(n2),因此整个算法段的时间复杂度应该是O(n2)。

第2章习题解答

一、填空

1.当一组数据的逻辑结构呈线性关系时,在数据结构里就称其为线性表。

2

3.以顺序存储结构实现的线性表,被称为顺序表。

4.以链式存储结构实现的线性表,被称为链表。

5.不带表头结点的链表,是指该链表的表头指针直接指向该链表的起始结点。

6.在一个双链表中,已经由指针ptr指向需要删除的存储结点,则删除该结点所要执行的两条操作是①ptr->Prior->Next = ptr->Next; ②ptr->Next->Prior = ptr->Prior; 。

7.设tail是指向非空、带表头结点的循环单链表的表尾指针。那么,该链表起始结点的存储位置应该表示成tail->Next->Next 。

8.在一个不带表头结点的非空单链表中,若要在指针qtr所指结点的后面插入一个值

为x的结点,则需要执行下列操作:

ptr = malloc (size);

ptr->Data = x ;

ptr->Next = qtr->Next ;

qtr->Next = ptr ;

9.顺序表Sq = (a1,a2,a3,…,a n)(n≥1)中,每个数据元素需要占用w个存储单元。若m为元素a1的起始地址,那么元素a n的存储地址是m+(n-1)*w。

10.当线性表的数据元素个数基本稳定、很少进行插入和删除操作,但却要求以最快的速度存取表中的元素时,我们应该对该表采用顺序存储结构。

二、选择

1.下面,对非空线性表特点的论述,C 是正确的。

A.所有结点有且只有一个直接前驱

B.所有结点有且只有一个直接后继

C.每个结点至多只有一个直接前驱,至多只有一个直接后继

D.结点间是按照1对多的邻接关系来维系其逻辑关系的

2.一般单链表Lk_h为空的判定条件是A 。

A.Lk_h == NULL B.Lk_h->Next == NULL

C.Lk_h->Next == Lk_h D.Lk_h != NULL

3

A.Lk_h == NULL B.Lk_h->Next == NULL

C.Lk_h->Next == Lk_h D.Lk_h != NULL

4

A.n B.n/2C.n+1 D.(n+1)/2

5.在一个单链表中,已知qtr所指结点是ptr所指结点的直接前驱。现要在qtr所指结点和ptr所指结点之间插入一个rtr所指的结点,要执行的操作应该是C 。

A.rtr->Next = ptr->Next; ptr->Next = rtr;

B.ptr->Next = rtr->Next;

C.qtr->Next = rtr; rtr->Next = ptr;

D.ptr->Next = rtr; rtr->Next = qtr->Next;

6.在一个单链表中,若现在要删除ptr指针所指结点的直接后继结点,则需要执行的操作是A 。

A.ptr->Next = ptr->Next->Next ;

B.ptr = ptr->Next; ptr->Next = ptr->Next->Next ;

C.ptr = ptr->Next->Next ;

D.ptr->Next ptr ;

7.在长度为n的顺序表中,往其第i个元素(1≤i≤n)之前插入一个新的元素时,需要往后移动B 个元素。

A.n-i B.n-i+1 C.n-i-1 D.i

8.在长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要往前移动A 个元素。

A.n-i B.n-i+1 C.n-i-1 D.i

9.设tail是指向一个非空带表头结点的循环单链表的尾指针。那么,删除链表起始结点的操作应该是D 。

A.ptr = tail ; B.tail = tail->Next ;

tail = tail->Next ; free (tail) ;

free (ptr);

C.tail = tail->Next->Next ; D.ptr = tail->Next->Next ;

Free (tail); tail->Next->Next = ptr->Next ;

Free (ptr); free (ptr);

10.在单链表中,如果指针ptr所指结点不是链表的尾结点,那么在ptr之后插入由指针qtr所指结点的操作应该是 B 。

A.qtr->Next = ptr ; B.qtr->Next = ptr->Next ;

ptr->Next = qtr ; ptr->Next = qtr ;

C.qtr->Next = ptr->Next ; D.ptr->Next = qtr ;

ptr = qtr ; qtr->Next = ptr ;

三、问答

1.试问,如下的线性表:

L = (29,25,21,17,13,11,7,5,3,1)

是有序线性表还是无序线性表?

答:L是一个有序线性表。

2.线性表L第i个存储结点a i的起始地址LOC(a i)可以通过下面的公式计算得到:LOC(a i)= LOC(a i-1)+k

其中k表示存储结点的长度。这个公式对吗?为什么?

答:这个公式是对的,因为第i个存储结点a i的起始地址LOC(a i),实际上就是等于第i-1个存储结点a i-1的起始地址LOC(a i-1)加上一个存储结点的长度k得到。

3.试说明创建顺序表算法Create_Sq ()中,Sq_max和Sq_num的不同之处。

答:Sq_max代表的是顺序表的最大长度,也就是它最多可以容纳下多少个数据元素,顺序表创建后,Sq_max是一个保持不变的常量;Sq_num代表的是顺序表内当前拥有的数据元素个数,在顺序表创建后,随着对数据元素进行的插入、删除操作,Sq_num将会不断地发生变化。

4.如何判断一个顺序表是否为空?

答:只需判定Sq_num的当前值是多少,如果Sq_num为0,则表示顺序表Sq为空,否则表示该顺序表里有数据元素存在。

5.在算法2-3里,操作“Sq_num=Sq_num -1”的作用是什么?没有它行吗?

答:该操作是非常重要的,因为顺序表里当前拥有的元素个数是通过Sq_num来记录的,删除了一个元素,Sq_num必须减1,这样才能正确反映出删除后表中元素的个数。所以,没有这个操作是不行的。

6.在算法2-9里,如果现在是把一个结点插入到单链表尾结点的后面。按照算法的描述,能够保证插入后最后一个结点的Next域为“Λ”吗?

答:能够。因为原来ptr->Next里是“Λ”,做了第1步操作:

qtr->Next = ptr->Next ;

后,就是把插入结点的Next域置为“Λ”。

7.在一个单链表中,为了删除指针ptr所指的结点,有人编写了下面的操作序列。读懂并加以理解。试问,编写者能够达到目的吗?其思想是什么?

x = ptr->Data ;

qtr = ptr->Next ;

ptr->Data = ptr->Next->Data ;

ptr->Next = ptr->Next->Next ;

free (qtr);

答:能够达到删除指针ptr所指结点的目的。编写者的思想是不去直接删除ptr所指的结点,而是在把ptr直接后继的Data域内容写入ptr所指结点的Data域之后,把它的直接后继删除。对于单链表来说,得到一个结点的直接后继容易,得到它的直接前驱难,所以这样的设计是有其可取之处的。

8.在一个单链表中,为了在指针ptr所指结点之前插入一个由指针qtr所指的结点,有人编写了下面的操作序列,其中temp是一个临时工作单元。读懂并加以理解。试问,编写者能够达到目的吗?其思想是什么?

qtr->Next = ptr->Next ;

ptr->Next = qtr ;

temp = ptr->Data ;

p->Data = qtr->Data ;

qtr->Data = temp ;

答:能够达到在指针ptr所指结点之前插入一个由指针qtr所指结点的目的。编写者的思想是考虑到在单链表中得到一个结点的前驱信息较为困难,因此在这里先把qtr所指结点插入到ptr所指结点的后面,暂时成为它的直接后继。然后通过临时工作单元temp,将ptr 及qtr所指结点的Data域内容进行交换,从而达到插入的目的。

9.打算形成一个有表头结点的循环双链表,初始时除了每个结点的Next域已经链接好外,它们的Prior域还都是空的。有人编写了下面的算法,试图完成Prior域的链接:Com_Cd (Cd_h)

{

ptr = Cd_h->Next ;

qtr = Cd_h ;

while (ptr != Cd_h)

{

ptr ->Prior = qtr ;

qtr = ptr ;

ptr = ptr->Next ;

}

Cd_h->Prior = qtr ;

}

读懂并理解它,解释为什么能够完成各结点的Prior域的链接?

答:算法中用两个指针ptr和qtr配合,从头到尾扫描这个循环双链表,以达到让每个结点的Prior域指向其直接前驱的目的。

四、应用

1.设计一个计算表头指针为Lk_h的单链表长度(即结点个数)的算法。

答:算法设计如下:

Length_Lk (Lk_h)

{

n = 0 ;

ptr = Lk_h ; /* ptr指向起始结点*/

while (ptr != NULL)

{

ptr = ptr->Next ;

n=n+1 ; /* n为结点计数单元*/

}

return (n) ;

}

2.用总是在表的头部插入整数结点的方法建立一个单链表,当输入为0时,建表过程结束。

答:算法设计如下:

Clink()

{

Lk_h = NULL;

scanf (%d, &x);

while (x != “0”)

{

ptr = malloc (size);

ptr->Data = x;

ptr->Next = Lk_h;

Lk_h = ptr;

scanf (%d, &x);

}

return Lk_h;

}

3.一个不带表头结点的循环双链表Ck的表头指针为Ck_h,要在指针ptr指向处前插入一个rtr所指结点。模仿图2-21,对一般插入位置标示出下面4个操作步骤:

①rtr->Next = ptr ;

②rtr->Prior = ptr->Prior ;

③ptr->Prior->Next = rtr ;

④ptr->Prior = rtr ;

答:4个操作步骤的具体功能体现如下图所示。

4.试设计一个算法copy (Ck_h1, Ck_h2),将一个带表头结点的、以Ck_h1为表头指针的单链表Ck1的内容,复制到一个不带表头结点的、以Ck_h2为表头指针的单链表Ck2中。

答:算法具体如下。

Copy (Ck_h1, Ck_h2)

{

ptr = Ck_h1->Next ;

qtr = Ck_h2 ;

while ( ptr != NULL)

{

rtr = malloc (size);

rtr->Data = ptr->Data ;

qtr->Next = rtr ;

qtr = rtr ;

ptr = ptr->Next ;

}

qtr->Next = NULL ;

}

5.已知一个带表头结点的递增单链表。试编写一个算法,功能是从表中去除值大于min、且值小于max的数据元素。(假定表中存在这样的元素)

答:所需算法编写如下。

Del_Sq(Lk_h, nim, max)

{

ptr = Lk_h->Next ; /* ptr指向链表的起始结点*/

while ( (ptr != NULL) && (ptr->Data <= min) ) /* 跳过所有值<=min的结点*/

{

qtr = ptr ;

ptr = ptr->Next ;

}

while ( (ptr != NULL) && (ptr->Data

p = p->Next ;

qtr->Next = ptr ; /* qtr指出第1个大于max的结点位置,完成链接*/

}

6.已知一个带表头结点的无序单链表。试编写一个算法,功能是从表中去除所有值大于min、且值小于max的数据元素。

答:所需算法编写如下,其中指针ptr总是指向当前被检查的结点,qtr总是指向被检查结点的直接前驱。

Del_Lk (Lk_h, min, max)

{

ptr = Lk_h->Next ; /* ptr指向单链表的起始结点*/

while (ptr != NULL) /* 扫视直到链尾结点*/

{

if ( (ptr->Data <= min) || (ptr->Data >= max) /* 不满足删除条件*/

{

qtr = ptr ; /* 往后移动qtr和ptr */

ptr = ptr->Next ;

}

else /* 删除ptr所指结点,往后移动ptr */

{

qtr->Next = ptr->Next ;

free (ptr);

ptr = qtr->Next ;

}

}

}

7.一个单链表Lk的表头指针为Lk_h,不同结点的Data域值有可能相同。编写一个算法,功能是计算出Data域值为x的结点的个数。

答:算法应该遍历链表的每一个结点,遇到一个结点的Data域值为x时,计数器n就加1。最后返回计数器n。

Count_Lk (Lk_h)

{

n = 0 ;

ptr = Lk_h ;

while (ptr != NULL)

{

if (ptr->Data == x)

n = n+1 ;

ptr = ptr->Next

}

return (n) ;

}

第3章习题解答

一、填空

1.限定插入和删除操作只能在一端进行的线性表,被称为是栈。

2.如果在顺序栈满时仍打算进行进栈操作,就称为发生了“上溢”出错。

3.如果在顺序栈空时仍打算进行出栈操作,就称为发生了“下溢”出错。

4.在具有n个数据结点的循环队列中,队满时共有n-1 个数据元素。

5.如果操作顺序是先让字母A、B、C进栈,做两次出栈;再让字母D、E、F进栈,做一次出栈;最后让字母G进栈,做三次出栈。最终这个堆栈从栈顶到栈底的余留元素应该是DA 。

6.中缀表达式(a+b)-(c/(d+e))对应的后缀表达式是ab+cde+/- 。

7.函数的递归调用有两种形式:如果一个函数是直接调用自己,就称其为直接递归调用;如果一个函数是通过另一个函数来调用自己,就称其为间接递归调用。

8.设某栈的元素输入顺序是1、2、3、4、5,想得到4、3、5、2、1的输出顺序。那么push、pop的操作序列应该是push、push、push、push、pop、pop、push、pop、pop、pop 。

9

10.队列中,允许进行删除的一端称为队首。

二、选择

1.一个栈的元素进栈序列是a、b、c、d、e,那么下面的C 不能做为一个出栈序列。

A.e、d、c、b、a B.d、e、c、b、a

C.d、c、e、a、b D.a、b、c、d、e

2

A.Qs_rear-Qs_front == n*size B.Qs_rear-Qs_front+1 == n*size

C.Qs_front == Qs_rear D.Qs_front == Qs_rear+size

3

A.Qs_rear-Qs_front == n*size B.Qs_rear-Qs_front+1 == n*size

C.Qs_front == Qs_rear D.Qs_front == Qs_rear+size 4.在一个链式队列Lq中,Lq_front和Lq_rear分别为队首、队尾指针。现在由指针ptr 所指结点要进队,则插入操作应该是B 。

A.Lq_front->Next = ptr; Lq_front = ptr;

B.Lq_rear->Next = ptr; Lq_rear = ptr;

C.ptr->Next = Lq_rear; Lq_rear = ptr;

D.ptr->Next = Lq_front; Lq_front = ptr;

5

A.通常不会出现栈空的情形B.插入操作更加便利

C.删除操作更加便利D.通常不会出现栈满的情形6.向链栈插入一个结点时,操作顺序应该是C 。

A.先修改栈顶指针,再插入结点B.无须修改栈顶指针

C.先插入结点,再修改栈顶指针D.谁先谁后没有关系7.从链栈中删除一个结点时,操作顺序应该是A 。

A.先保存被删结点的值,再修改栈顶指针

B.先修改栈顶指针,再保存被删结点的值

C.无须修改栈顶指针的值

D.谁先谁后没有关系

8.一个循环队列的最大容量为m+1,front为队首指针,rear为队尾指针。那么进队操作时求队位号应该使用公式D 。

A.Cq_front = (Cq_front+1)%m B.Cq_front = (Cq_front+1)%(m+1)

C.Cq_rear = (Cq_rear+1)%m D.Cq_rear = (Cq_rear+1)%(m+1)

9

A.队首元素B.队首元素的前一个队位

C.任意位置D.队首元素的后一个队位

10.若一个栈的进栈序列是1、2、3、4,那么要求出栈序列为3、2、1、4时,进、出栈操作的顺序应该是A 。(注:所给顺序中,I表示进栈操作,O表示出栈操作)A.IIIOOOIO B.IOIOIOIO C.IIOOIOIO D.IOIIIOOO

三、问答

1.若元素进栈的序列是1、2、3、…、n,有一个出栈序列的第1个元素是n。那么,这个出栈序列的第i个元素是什么?

答:由于栈具有“先进后出”的特性,因此只有将1、2、3、…、n依次都进栈后,出栈序列的第1个元素才能是n。所以,在这个出栈序列里,第个i元素应该是n-i+1。

2.设元素进栈的次序是a,b,c,d,e。试问,在下面所列的6种元素序列里,哪些可以是这个栈的出栈序列?

A.c,e,a,b,d B.c,b,a,d,e C.d,c,a,b,e

D.a,c,b,e,d E.a,b,c,d,e F.e,a,b,c,d 答:对A进行分析。由于是c第1个出栈,因此b必须先于a出栈。但所给序列里,a

却先于b出栈,故A不能是该栈的出栈序列。

对C进行分析。由于是d第1个出栈,因此a、b、c三者出栈的顺序必须是c、b、a。但所给序列里,a却先于b出栈,故C不能是该栈的出栈序列。

对F进行分析。由于是e第1个出栈,因此a、b、c、d四者出栈的顺序必须是d、c、b、a。但所给序列里,它们的出栈顺序全乱了,故F不能是该栈的出栈序列。

因此,所列的6种元素序列里,只有B、D、E可以是这个栈的出栈序列。

3.有一个顺序栈Ss,其栈顶指针为Ss_top,栈底指针为Ss_bottom。阅读下面给出的算法,其中的两条prinf函数的输出结果各是什么?(算法中的Push_Ss(Ss_top, ch)表示将ch 里的元素进栈,Pop_Ss(Ss_top, ch)表示将栈顶元素出栈,存入ch中)

print ()

{

for (ch = ‘A’; ch <= ‘A’+12 ; ch++)

{

Push_Ss(Ss_top, ch) ;

printf (“%c”, ch);

}

while (Ss_top != Ss_bottom)

{

Pop_Ss(Ss_top, ch);

printf (“%c”, ch);

}

}

答:第1条printf的输出是前13个英文大写字母ABCDEFGHIJKLM,第2条printf输出的是前面输出的倒置,即MLKJIHGFEDCBA。

4.设有6个元素a1、a2、a3、a4、a5、a6,它们以此顺序依次进栈。假定要求它们的出栈顺序是a4、a3、a2、a6、a5、a1,那么应该如何安排push和pop操作序列?

答:所需的push和pop操作序列如下:

push,push,push,push,pop,pop,pop,push,push,pop,pop,pop 5.有中缀表达式a / ( b / ( c / ( d / e ) ) )。有人将其转化为相应的后缀表达式是abcde////。这一转化结果对吗?

答:转化结果是对的。

6.试述栈与队列各自具有什么样的逻辑特点?它们之间又有什么共同点?

答:对于栈来说,由于只能在栈顶处进行插入和删除操作,这就使得数据元素到达栈(即往栈里插入元素)的顺序与数据元素离开栈(即从栈里删除元素)的顺序恰好相反。所以,堆栈的逻辑特点是后进先出(LIFO),或先进后出(FILO)。而对队列来说,插入在一端进行,删除在另一端进行,这就使得数据元素到达队列(即往队列里插入元素)的顺序与数据元素离开队列(即从队列里删除元素)的顺序是完全一致的。所以,队列的逻辑特点是先进先出(FIFO)或后进后出(LILO)。它们之间的共同之处是插入和删除只能在表的端点处进行(要知道,对于线性表,可以在表的任何位置处插入和删除)。

7.有一个顺序队列,最大容量为5。初始时有Qs_front = Qs_rear = 0。画出做下列操作时队列及其首、尾指针的变化情况。若不能进队时就停止,并简述原因。

(1)d、e、b进队(2)d、e出队(3)i、j进队

(4)b出队(5)n、o、p进队

答:队列及其首、尾指针的变化情况如下图所示。

在做(5)时,由于队满(假溢出),故操作停止。

8.有一个递归函数Write(),定义如下:

Write(x)

{

if (x != 0)

{

Write (x-1) ;

for (j=1; j<=x; j++)

printf (“%3d”, x);

printf (“/n”);

}

}

试问,Write(5)的输出结果是什么?

答:输出结果为:

1

2 2

3 3 3

4 4 4 4

5 5 5 5 5

四、应用

1.编写一个判顺序栈空的算法。要求是如果栈空,返回1,否则返回0。

答:算法设计如下:

Empty_Ss (Ss, Ss_top)

{

if (Ss_top == 0) /* 栈空*/

return (1) ;

else /* 栈不空*/

return (0) ;

}

2.编写一个算法,它能够输出顺序队列Qs上所有元素的值。

答:算法编写如下:

Print_Qs (Qs_front, Qs_rear)

{

if (Qs_front == Qs_rear) /* 队列空!*/

printf (“queue is empty!”);

else /* 队列非空!*/

{

qtr = Qs_front ;

while (qtr <= Qs_rear)

{

printf (“%d”, *qtr);

qtr++ ;

}

}

}

3.编写一个算法,它能够取得链式队列首元素的值。

答:取得链式队列首元素的值,只有在队列非空的前途下才有意义。算法编写如下。

Getf_Lq(Lq_front, Lq_rear)

{

if (Lq_front == Lq_rear) /* 队列空!*/

printf (“The linked queue is empty!”);

else /* 队列非空!*/

{

ptr = Lq_front->Next ;

x = ptr->Data ;

return (x) ;

}

}

4.有五个人顺序坐在一起。问第5个人多少岁,回答说比第4个人大2岁;问第4个人多少岁,回答说比第3个人大2岁;问第3个人多少岁,回答说比第2个人大2岁;问第2个人多少岁,回答说比第1个人大2岁;问第1个人多少岁,回答说是10岁。试给出该递归的公式、结束条件,并编写出相应的递归算法。

答:递归公式为:

age(n)=age(n-1)+2 2<=n<=5

递归的结束条件是:

age(1)=10

相应算法为:

Age (n)

{

if (n == 1)

return (10);

else

{

x=age(n-1)+2 ;

return (x) ;

}

}

5.将中缀表达式转化为后缀表达式的方法类似于中缀表达式求值。具体地,要开辟一个运算符栈op和一个数组st。在自左至右扫描算术表达式时,遇到操作数就直接顺序存入

st;遇到运算符时就与op栈顶元素比较,高则进栈,不高则让栈顶元素出栈,存入st,然后该运算符再次去与新的op栈顶元素比较。最后,在数组st里形成所需要的后缀表达式。试用这种方法,用图示将中缀表达式5+8*3-2转化成为相应的后缀表达式。

答:相应的后缀表达式是583*+2-,其图示如下。

6.语言编译时,总是先将中缀表达式转化成为后缀表达式,然后再计算后缀表达式的值,因为后缀表达式已经去除了括号,没有了运算符的优先级。计算后缀表达式的方法是只开辟一个对象栈ob,当从左往右扫描后缀表达式时,每遇到操作数就让其进入ob栈,每遇到运算符就从ob栈里弹出两个操作数进行当前的计算,并将计算结果进ob栈。该过程直至整个表达式结束。ob栈的栈顶值就是最终结果。试用图示计算后缀表达式583*+2-的值。

答:计算结果为27,其图示如下。

第4章习题解答

一、填空

1.字符串是一种特殊的线性表,特殊在于它的数据元素只能是字符,特殊在于串可以作为一个整体参与所需要的处理。

2.空格串是由空格组成的串,空串是不含任何字符的串,因此空格串和空串不是一个概念。

3.字符串中任意多个连续字符所组成的子序列,被称作是这个串的“子串”,这个字符串本身则称为“主串”。

4.我们说两个字符串相等,在计算机内部实际上是通过对相应位置上字符ASCII 码

的比较而得到的结论。

5.设有串s=“I am a teacher”。该串的长度是14 。

6.设有三个串:s1=“Good”,s2=“Ф”,s3=“bye!”。则s1、s2、s3连接后的结果串应该是“Good bye! ”。

7.所谓“数组”,是指n(n>1)个具有相同类型的数据的有序集合。

8.矩阵与通常所说的二维数组有关。

9.所谓“特殊矩阵”,是指那些元素在矩阵中的分布具有一定规律性的矩阵;而矩阵中的零元素个数远远多于非零元素的个数,但非零元素的分布却没有规律,这样的矩阵被称为“稀疏矩阵”。

10.在一个n阶方阵A中,若所有元素都有性质:a ij = a ji (1≤i, j≤n),就称其为对称矩阵。

二、选择

1.设有两个串s1和s2。求s2在s1中首次出现的位置的操作称为B 。

A.连接B.模式匹配C.求子串D.求串长

2.有串:“Ф”,那么它的长度是B 。

A.0 B.1 C.2 D.3

3.设有串s1=“ABCDEFG”和s2=“PQRST”。已知:算法con(x, y)返回串x和y的连接串;subs(s, i, j)返回串s的第i个字符开始往后j个字符组成的子串;len(s)返回串s的长度。那么,con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2))的操作结果是串D 。

A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF 4.设有一个8阶的对称矩阵A,采用以行优先的方式压缩存储。a11为第1个元素,其存储地址为1,每个元素占一个地址空间。试问元素a85的地址是A 。

A.33 B.30 C.13 D.23

5.一个m*m的对称矩阵,如果以行优先的方式压缩存入内存。那么所需存储区的容量应该是C 。

A.m*(m-1)/2 B.m*m/2 C.m*(m+1)/2 D.(m+1)*(m+1)/2 6.二维数组M的每个元素含4个字符(每个字符占用一个存储单元),行下标i从1变到5,列下标j从1变到6。那么按行顺序存储时元素M[4][6]的起始地址与M按列顺序存储时元素B 的起始地址相同。

A.M[3][5] B.M[4][5] C.M[4][6] D.M[5][5] 7.二维数组M中的每个元素占用3个存储单元,行下标i从1变到8,列下标j从1变到10。现从首地址为SA的存储区开始存放A。那么该数组以行优先存放时,元素A[8][5]的起始地址应该是C 。

A.SA+141 B.SA+180 C.SA+222 D.SA+225 8.设有一个5阶上三角矩阵A,将其元素按列优先顺序存放在一维数组B中。已知每个元素占用2个存储单元,B[1]的地址是100。那么A[3][4]的地址是A 。

A.116 B.118 C.120 D.122

(分析:把一个上三角矩阵按列优先顺序存放在一个一维数组B中,元素的顺序是:

a11a12a22a13……

A[3,4]的地址=100+a34前面的元素个数*2

=100+(前3列的个数+本列a34前面的个数)*2

=100+((1+2+3)+2)*2=116

三、问答

1.为什么可以把二维数组视为是一种线性结构?

答:实际上,二维数组是一种较为复杂的数据结构,数据元素之间的关系并不是线性的。不过,如果我们把它看作是其每个元素为一维数组的一个一维数组,那么就可以把二维数组视为是线性表的一种推广(因为一维数组即是线性表),因此可以说它的数据元素间的逻辑关系呈现出的是一种线性结构。

2.图4-34(a)所示为一个特殊矩阵A5 5,这种形式的矩阵被称作是“带状矩阵”,因为它的非零元素都分布在以主对角线为中心的一个带状区域里,其他位置上的元素全部为0。可以以行优先的方式,将其压缩存储到一个一维数组里,如图4-34(b)所示。试找出元素下标i、j与存储序号k间的对应关系。

图4-34 带状矩阵

答:压缩存储元素下标i、j与存储序号k间的对应关系是:

k = 2*i + j – 2

3.一个稀疏矩阵如图4-35所示。试问,它对应的三元组表是什么?

图4-35 稀疏矩阵示例

答:它所对应的三元组表如下。

四、应用

1.请将算法4-1改为用while循环来实现。

答:改写的算法4-1可以是如下所示。

Concat_St(St1, St2)

{

char St3[maxsize]; /* 创建一个新的顺序串为空*/

St3_len=0;

if (St1_len+St2_len>maxsize+1) /* 新串放不下两个串*/

{

printf(“两串长度之和超长!”);

return(NULL);

}

else

{

i=1;

while (i<=St1_len)

{

St3[i]=St1[i];

i++;

}

j=1;

while (j<= St2_len)

{

St3[j+St1_len]=St2[j];

j++;

}

St3_Len=St1_len+St2_len;

St3[St3_len+1]= “\0”;

return(St3);

}

}

2.算法4-2也可以这样来描述,直接核对相应位置上的字符是否相同,然后再分别情况做出判断:一是有不相同的字符出现,一是有一个字符串比另一个字符串长,最后则是两个串完全相等。按照这样的设计,改写算法4-2。

答:按照这样的设计,算法4-2的描述如下。

Equal_St(St1, St2)

{

i=1;

while (St1[i] != “\0”) /* 两串进行比较*/

{

if (St1[i] == St2[i]) /* 相等,继续比较*/

i++;

else /* 不等,强制退出*/

black;

}

if (St1[i] != St2[i]) /* 比较是由于相应位置上的字符不同而结束*/

return (0);

else

{

if (St1[i] != “\0” || St2[i] != “\0”) /* 比较是由于长度不同而结束*/

return (0);

else

return (1);

}

}

3.算法:

Trans_St(St,ch1,ch2)

{

i=1;

While(St[i]!="\0")

{

if(St[i]==ch1)

St[i]==ch2;

i++;

}

}

是通过while循环来实现将顺序串St中所有的字符ch1改为字符ch2的。请改写成用for 循环来实现相同的功能。

答:用for 循环改写的算法如下。

Trans_St(St, ch1, ch2)

{

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

if (St[i] == ch1)

St[i] = ch2;

}

4.编写一个算法,将顺序串St中所有的大写字母全部换成小写字母。(提示:大写英文字母A~Z对应的ASCII码为65~90,小写英文字母a~z对应的ASCII码为97~122,在大写字母的ASCII码上加32,就是对应小写字母的ASCII码)

答:算法编写如下。

Catosm_St(St)

{

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

if ((A<=St[i])&&(St[i]<=Z))

St[i]=St[i]+32;

}

5.已知顺序串St,编写一个算法,将其中第i个字符开始连续的j个字符删除。(提示:先要判断所给参数是否合理,然后通过将第i+j开始往后的字符全部移动j个位置,完成删除的功能)

答:算法编写如下。

Moveij(St, i, j)

{

if (i+j<=St_len)

{

for (k=i+j; k<=St_len; k++) /* 将i+j开始往后的所有字符前移j个位置*/

St[k-j]=St[k];

St_len=St_len-j; /* 修改St的长度*/

St[St_len]= “\0”; /* 安放新的串结束符*/

}

else

printf (“参数不合理,无法进行删除!”);

}

6.在算法4-12的最后,为了释放被删结点使用的存储空间,先做了操作:

ptr->Next = NULL;

把由指针ptr指向的最后一个要释放空间的结点的Next域设置为NULL,然后通过while循环完成释放。其实,由于知道要释放空间的结点共有m个,因此可以取消这一操作,改用for循环通过m来控制释放空间的结点个数。请试着按照这一思路改写那一小段算法。

答:改写一小段算法如下。

for (j=1; j<=m; j++)

{

ptr=rtr;

rtr=rtr->Next;

free(ptr);

}

7.编写一个算法,功能是复制一个链串。

答:复制一个完整的链串,是一件比较容易的事情。其算法起名为Copy_Lt(),参数为Lt1。具体编写如下。

Copy_Lt(Lt1)

{

ptr=Lt1_h;

rtr=malloc(size);

rtr->Data=ptr->Data;

Lt2_h=rtr;

ptr=ptr->Next;

while (ptr != NULL)

{

qtr=malloc(size);

qtr->Data=ptr->Data;

rtr->Next=qtr;

ptr=ptr->Next;

}

rtr->Next=NULL;

return(Lt2_h);

}

算法是通过while循环,不断修改指针ptr,以便指向链串Lt1的各个结点;指针rtr总是指向当前已形成的新链串Lt2的最后一个结点;用指针qtr指向刚申请到的新存储结点,并把它链入到rtr所指结点的后面。

8.已知两个mⅹn的矩阵A和B。编写一个算法,求C=A+B。即C也是一个mⅹn的矩阵,其元素满足条件:

c ij = a ij + b ij(1≤i≤m,1≤j≤n)

答:算法名为Add_Mt(),参数为A,B,C。

Add_Mt(A, B, C)

{

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

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

C[i][j] = A[i][j] + B[i][j];

}

第5章习题解答(此处树的高度不计算根节点)

一、填空

1.结点数为7的二叉树的高度最矮是2 ,最高是6 。

2.给定二叉树的结点数,要使树高为最大,那么该树应该是单枝形状。

3.给定二叉树的结点数,要使树高为最矮,那么该树应该是完全二叉树形状。

4.如果一棵满二叉树的深度为6,那么它共有127 个结点,有64 个叶结点。

5.有15个结点的二叉树,最少有1 个叶结点,最多有8 个叶结点。

6.由n个带权值的叶结点生成的哈夫曼树,最终共有2n-1个结点。

7.将一棵完全二叉树按层次进行编号。那么,对编号为i的结点,如果有左孩子,则左孩子的编号应该是2i;如果有右孩子,则右孩子的编号应该是2i+1 。

8.若二叉树共有n个结点,采用二叉链表存储结构。那么在所有存储结点里,一共会有2n 个指针域,其中有n+1 个指针域是空的。

9.深度为5的二叉树,至多有31 个结点。

10.在二叉树中,有一个结点具有左、右两个孩子。那么在中序遍历序列里,它的右孩子一定排在它的右边。

二、选择

1.在所给的4棵二叉树中,C 不是完全二叉树。

2.把一棵深度为3的左单支二叉树改造成完全二叉树时,要增添D 个空结点。

A.10 B.8 C.6 D.4

3.设有一棵5个结点的二叉树,其先序遍历序列为:A-B-C-D-E,中序遍历序列为:B-A-D-C-E,那么它的后序遍历序列为B 。

A.A-B-D-E-C B.B-D-E-C-A

C.D-E-C-A-B D.A-B-C-D-E

运筹学试题及答案

运筹学A卷) 一、单项选择题(从下列各题四个备选答案中选出一个正确答案,答案选错或未选者,该题不得分。每小题1分,共10分) 1.线性规划具有唯一最优解就是指 A.最优表中存在常数项为零 B.最优表中非基变量检验数全部非零 C.最优表中存在非基变量的检验数为零 D.可行解集合有界 2.设线性规划的约束条件为 则基本可行解为 A.(0, 0, 4, 3) B.(3, 4, 0, 0) C.(2, 0, 1, 0) D.(3, 0, 4, 0) 3.则 A.无可行解 B.有唯一最优解medn C.有多重最优解 D.有无界解 4.互为对偶的两个线性规划, 对任意可行解X 与Y,存在关系 A.Z > W B.Z = W C.Z≥W D.Z≤W 5.有6 个产地4个销地的平衡运输问题模型具有特征 A.有10个变量24个约束

B.有24个变量10个约束 C.有24个变量9个约束 D.有9个基变量10个非基变量 6、下例错误的说法就是 A.标准型的目标函数就是求最大值 B.标准型的目标函数就是求最小值 C.标准型的常数项非正 D.标准型的变量一定要非负 7、m+n-1个变量构成一组基变量的充要条件就是 A.m+n-1个变量恰好构成一个闭回路 B.m+n-1个变量不包含任何闭回路 C.m+n-1个变量中部分变量构成一个闭回路 D.m+n-1个变量对应的系数列向量线性相关 8.互为对偶的两个线性规划问题的解存在关系 A.原问题无可行解,对偶问题也无可行解 B.对偶问题有可行解,原问题可能无可行解 C.若最优解存在,则最优解相同 D.一个问题无可行解,则另一个问题具有无界解 9、有m个产地n个销地的平衡运输问题模型具有特征 A.有mn个变量m+n个约束…m+n-1个基变量 B.有m+n个变量mn个约束 C.有mn个变量m+n-1约束 D.有m+n-1个基变量,mn-m-n-1个非基变量 10.要求不超过第一目标值、恰好完成第二目标值,目标函数就是

运筹学习题精选

运筹学习题精选

运筹学习题精选 第一章线性规划及单纯形法 选择 1.在线性规划模型中,没有非负约束的变量称为……………………………………………………( C ) A.多余变量 B.松弛变量 C.自由变量 D.人工变量 2.约束条件为0 AX的线性规划问题的可行解集 b ,≥ =X 是………………………………………( B ) A.补集 B.凸集 C.交集 D.凹集 3.线性规划问题若有最优解,则一定可以在可行域的( C)上达到。 A.内点 B.外点 C.顶点 D.几何点 4.线性规划标准型中bi(i=1,2,……m)必须是…………………………………………………( B) A.正数 B.非负数 C.无约束 D.非零的 5.线性规划问题的基本可行解X对应于可行域D 的………………………………………………( D) A.外点 B.所有点 C.内点 D.极点 6.基本可行解中的非零变量的个数小于约束条件数时,该问题可求得……………………………( B ) A.基本解 B.退化解 C.多重解 D.无解 7.满足线性规划问题全部约束条件的解称为…………………………………………………( C ) A.最优解 B.基本解 C.可行解 D.多重解 8.线性规划一般模型中,自由变量可以用两个非负变量的(B )代换。 A.和 B.差 C.积 D.商 9.当满足最优检验,且检验数为零的变量的个数大于基变量的个数时,可求得………………………( A ) 第 2 页共 30 页

第 3 页 共 30 页 A .多重解 B .无解 C .正则解 D .退化解 10.若线性规划问题有最优解,则必定存在一个( D )是最优解。 A .无穷多解 B. 基解 C. 可行解 D. 基可行解 填空 计算 1. 某厂生产甲、乙、丙三种产品,已知有关数据如下表所示,求使该厂获利最大的生产计划。 2. 目标函数为max Z =28x4+x5+2x6,约束形式为“≤”,且x1,x2,x3为松弛变量, 表中的解代入目标函数中得Z=14,求出a~g 的值,并判断→j c 0 0 0 28 1 2 B C 基 b 1x 2x 3x 4x 5x 6x 2 6x A 3 0 -14/3 0 1 1 0 2x 5 6 D 2 0 5/2 0 28 4x 0 0 E F 1 0 0 j j z c - B C 0 0 -1 G

模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断

实验报告 课程名称操作系统原理实验名称虚拟页式管理 姓名学号专业班级网络 实验日期成绩指导教师赵安科 (①实验目的②实验原理③主要仪器设备④实验内容与步骤⑤实验数据记录与处理⑥实验结果与分析⑦问题建议) 实验二模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断 1.内容:模拟请求页式存储管理中硬件的地址转换和缺页中断处理 2.思想: 装入新页置换旧页时,若旧页在执行中没有被修改过,则不必将该页重写磁盘。因此,页表中增加是否修改过的标志,执行“存”指令和“写”指令时将对应的修改标志置成“1” 3.要求及方法: ①设计一个地址转换程序来模拟硬件的地址转换和缺页中断。当访问的页在主存时则形成绝对地址,但不去模拟指令的执行,可以输出转换后的绝对地址来表示一条指令已执行完成。当访问的页不在主存中时,则输出“*页号”来表示硬件产生了一次缺页中断。模拟地址转换流程见图1。 ②编制一个FIFO页面调度程序;FIFO页面调度算法总是先调出作业中最先进入主存中的哪一页。因此可以用一个数组来表示(或构成)页号队列。数组中每个元素是该作业已在主存中的页面号,假定分配给作业的页架数为m,且该作业开始的m页已装入主存,则数组可由m个元素构成。 P[0],P[1],P[2],…,P[m-1] 它们的初值为P[0]:=0,P[1]:=1,P[2]:=2,…,P[m-1]:=m-1 用一指针K指示当要调入新页时应调出的页在数组中的位置,K的初值为“0”,当产生缺页

中断后,操作系统总是选择P[K]所指出的页面调出,然后执行: P[K]:=要装入的新页页号 K :=(k+1)mod m 在实验中不必实际地启动磁盘执行调出一页和装入一页的工作,而用输出“OUT 调出的页号”和“IN 要装入的新页页号”来模拟一次调出和装入过程,模拟程序的流程图见附图1。 按流程控制过程如下: 提示:输入指令的页号和页内偏移和是否存指令?? ? 0 1非存指令存指令,若d 为-1则结束,否则进 入流程控制过程,得P 1和d ,查表在主存时,绝对地址=P 1×1024+d ③ 假定主存中页架大小为1024个字节,现有一个共7页的作业,其副本已在磁盘上。系统为该作业分配了4个页架,且该作业的第0页至第3页已装入内存,其余3页未装入主 依次执行上述指令调试你所设计的程序(仅模拟指令的执行,不考虑序列中具体操作的执行)。

计量经济学题库及答案

计量经济学题库 一、单项选择题(每小题1分) 1.计量经济学是下列哪门学科的分支学科(C)。 A.统计学 B.数学 C.经济学 D.数理统计学 2.计量经济学成为一门独立学科的标志是(B)。 A.1930年世界计量经济学会成立B.1933年《计量经济学》会刊出版 C.1969年诺贝尔经济学奖设立 D.1926年计量经济学(Economics)一词构造出来 3.外生变量和滞后变量统称为(D)。 A.控制变量 B.解释变量 C.被解释变量 D.前定变量4.横截面数据是指(A)。 A.同一时点上不同统计单位相同统计指标组成的数据B.同一时点上相同统计单位相同统计指标组成的数据 C.同一时点上相同统计单位不同统计指标组成的数据D.同一时点上不同统计单位不同统计指标组成的数据 5.同一统计指标,同一统计单位按时间顺序记录形成的数据列是(C)。 A.时期数据 B.混合数据 C.时间序列数据 D.横截面数据6.在计量经济模型中,由模型系统内部因素决定,表现为具有一定的概率分布的随机变量,其数值受模型中其他变量影响的变量是( A )。 A.内生变量 B.外生变量 C.滞后变量 D.前定变量7.描述微观主体经济活动中的变量关系的计量经济模型是( A )。 A.微观计量经济模型 B.宏观计量经济模型 C.理论计量经济模型 D.应用计量经济模型 8.经济计量模型的被解释变量一定是( C )。 A.控制变量 B.政策变量 C.内生变量 D.外生变量9.下面属于横截面数据的是( D )。 A.1991-2003年各年某地区20个乡镇企业的平均工业产值 B.1991-2003年各年某地区20个乡镇企业各镇的工业产值 C.某年某地区20个乡镇工业产值的合计数 D.某年某地区20个乡镇各镇的工业产值 10.经济计量分析工作的基本步骤是( A )。 A.设定理论模型→收集样本资料→估计模型参数→检验模型B.设定模型→估计参数→检验模型→应用

运筹学典型考试试题及答案

二、计算题(60分) 1、已知线性规划(20分) MaxZ=3X1+4X2 X1+X2≤5 2X1+4X2≤12 3X1+2X2≤8 X1,X2≥0 其最优解为: 基变量X1X2X3X4X5 X33/2 0 0 1 -1/8 -1/4 X25/2 0 1 0 3/8 -1/4 X1 1 1 0 0 -1/4 1/2 σj 0 0 0 -3/4 -1/2 1)写出该线性规划的对偶问题。 2)若C2从4变成5,最优解是否会发生改变,为什么? 3)若b2的量从12上升到15,最优解是否会发生变化,为什么? 4)如果增加一种产品X6,其P6=(2,3,1)T,C6=4该产品是否应该投产?为什么?解: 1)对偶问题为 Minw=5y1+12y2+8y3 y1+2y2+3y3≥3 y1+4y2+2y3≥4 y1,y2≥0 2)当C2从4变成5时, σ4=-9/8 σ5=-1/4 由于非基变量的检验数仍然都是小于0的,所以最优解不变。 3)当若b2的量从12上升到15 X=9/8 29/8 1/4 由于基变量的值仍然都是大于0的,所以最优解的基变量不会发生变化。 4)如果增加一种新的产品,则 P6’=(11/8,7/8,-1/4)T σ6=3/8>0 所以对最优解有影响,该种产品应该生产 2、已知运输问题的调运和运价表如下,求最优调运方案和最小总费用。(共15分)。 B1B2B3产量销地 产地 A1 5 9 2 15 A2 3 1 7 11 A3 6 2 8 20 销量18 12 16 解:初始解为

计算检验数 由于存在非基变量的检验数小于0,所以不是最优解,需调整 调整为: 重新计算检验数 所有的检验数都大于等于0,所以得到最优解 3、某公司要把4个有关能源工程项目承包给4个互不相关的外商投标者,规定每个承包商只能且必须承包一个项目,试在总费用最小的条件下确定各个项目的承包者,总费用为多少?各承包商对工程的报价如表2所示: (15分) 项目 投标者 A B C D 甲 15 18 21 24 乙 19 23 22 18 丙 26 17 16 19 丁 19 21 23 17 答最优解为: X= 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 总费用为50 4. 考虑如下线性规划问题(24分) B 1 B 2 B 3 产量/t A 1 15 15 A 2 11 11 A 3 18 1 1 20 销量/t 18 12 16 B 1 B 2 B 3 产量/t A 1 5 13 0 15 A 2 -2 0 0 11 A 3 0 0 20 销量/t 18 12 16 B 1 B 2 B 3 产量/t A 1 15 15 A 2 11 11 A 3 7 12 1 20 销量/t 18 12 16 B 1 B 2 B 3 产量/t A 1 5 13 0 15 A 2 0 2 2 11 A 3 0 0 0 20 销量/t 18 12 16

运筹学试题

运筹学试题 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

运筹学试题 一、填空题(本大题共8小题,每空2分,共20分) 1.线性规划闯题中,如果在约束条件中出现等式约束,我们通常用增加___的方法来产生初始可行基。 2.线性规划模型有三种参数,其名称分别为价值系数、___和___。 3.原问题的第1个约束方程是“=”型,则对偶问题相应的变量是___变量。 4.求最小生成树问题,常用的方法有:避圈法和 ___。 5.排队模型M/M/2中的M,M,2分别表示到达时间为___分布,服务时间服从负指数分布和服务台数为2。 6.如果有两个以上的决策自然条件,但决策人无法估计各自然状态出现的概率,那么这种决策类型称为____型决策。 7.在风险型决策问题中,我们一般采用___来反映每个人对待风险的态度。 8.目标规划总是求目标函数的___信,且目标函数中没有线性规划中的价值系数,而是在各偏差变量前加上级别不同的____。 二、单项选择题(本大题共l0小题,每小题3分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。多选无分。 9.使用人工变量法求解极大化线性规划问题时,当所有的检验数在基变量中仍含有非零的人工变量,表明该线性规划问题【】 A.有唯一的最优解 B.有无穷多最优解 C.为无界解 D.无可行解 10.对偶单纯形法解最大化线性规划问题时,每次迭代要求单纯形表中【】 A.b列元素不小于零 B.检验数都大于零 C.检验数都不小于零 D.检验数都不大于零

11.已知某个含10个结点的树图,其中9个结点的次为1,1,3,1,1,1,3,1,3,则另一个结点的次为【】 A.3 B.2 C.1 D.以上三种情况均有可能 12.如果要使目标规划实际实现值不超过目标值。则相应的偏离变量应满足【】 13.在运输方案中出现退化现象,是指数字格的数目【】 A.等于 m+n B.等于m+n-1 C.小于m+n-1 D.大于m+n-1 14.关于矩阵对策,下列说法错误的是【】 A.矩阵对策的解可以不是唯一的 C.矩阵对策中,当局势达到均衡时,任何一方单方面改变自己的策略,都将意味着自己更少的赢得和更大的损失 D.矩阵对策的对策值,相当于进行若干次对策后,局中人I的平均赢得或局中人Ⅱ的平均损失值 【】 A.2 8.—l C.—3 D.1 16.关于线性规划的原问题和对偶问题,下列说法正确的是【】 A.若原问题为元界解,则对偶问题也为无界解

计量经济学习题与解答

第五章经典单方程计量经济学模型:专门问题 一、内容提要 本章主要讨论了经典单方程回归模型的几个专门题。 第一个专题是虚拟解释变量问题。虚拟变量将经济现象中的一些定性因素引入到可以进行定量分析的回归模型,拓展了回归模型的功能。本专题的重点是如何引入不同类型的虚拟变量来解决相关的定性因素影响的分析问题,主要介绍了引入虚拟变量的加法方式、乘法方式以及二者的组合方式。在引入虚拟变量时有两点需要注意,一是明确虚拟变量的对比基准,二是避免出现“虚拟变量陷阱”。 第二个专题是滞后变量问题。滞后变量包括滞后解释变量与滞后被解释变量,根据模型中所包含滞后变量的类别又可将模型划分为自回归分布滞后模型与分布滞后模型、自回归模型等三类。本专题重点阐述了产生滞后效应的原因、分布滞后模型估计时遇到的主要困难、分布滞后模型的修正估计方法以及自回归模型的估计方法。如对分布滞后模型可采用经验加权法、Almon多项式法、Koyck方法来减少滞项的数目以使估计变得更为可行。而对自回归模型,则根据作为解释变量的滞后被解释变量与模型随机扰动项的相关性的不同,采用工具变量法或OLS法进行估计。由于滞后变量的引入,回归模型可将静态分析动态化,因此,可通过模型参数来分析解释变量对被解释变量影响的短期乘数和长期乘数。 第三个专题是模型设定偏误问题。主要讨论当放宽“模型的设定是正确的”这一基本假定后所产生的问题及如何解决这些问题。模型设定偏误的类型包括解释变量选取偏误与模型函数形式选取取偏误两种类型,前者又可分为漏选相关变量与多选无关变量两种情况。在漏选相关变量的情况下,OLS估计量在小样本下有偏,在大样本下非一致;当多选了无关变量时,OLS估计量是无偏且一致的,但却是无效的;而当函数形式选取有问题时,OLS估计量的偏误是全方位的,不仅有偏、非一致、无效率,而且参数的经济含义也发生了改变。在模型设定的检验方面,检验是否含有无关变量,可用传统的t检验与F检验进行;检验是否遗漏了相关变量或函数模型选取有错误,则通常用一般性设定偏误检验(RESET检验)进行。本专题最后介绍了一个关于选取线性模型还是双对数线性模型的一个实用方法。 第四个专题是关于建模一般方法论的问题。重点讨论了传统建模理论的缺陷以及为避免这种缺陷而由Hendry提出的“从一般到简单”的建模理论。传统建模方法对变量选取的

运筹学试题及答案汇总

3)若问题中 x2 列的系数变为(3,2)T,问最优解是否有变化; 4)c2 由 1 变为 2,是否影响最优解,如有影响,将新的解求出。 Cj CB 0 0 Cj-Zj 0 4 Cj-Zj 3 4 Cj-Zj 最优解为 X1=1/3,X3=7/5,Z=33/5 2对偶问题为Minw=9y1+8y2 6y1+3y2≥3 3y1+4y2≥1 5y1+5y2≥4 y1,y2≥0 对偶问题最优解为 y1=1/5,y2=3/5 3 若问题中 x2 列的系数变为(3,2)T 则P2’=(1/3,1/5σ2=-4/5<0 所以对最优解没有影响 4)c2 由 1 变为2 σ2=-1<0 所以对最优解没有影响 7. 求如图所示的网络的最大流和最小截集(割集,每弧旁的数字是(cij , fij )。(10 分) V1 (9,5 (4,4 V3 (6,3 T 3 XB X4 X5 b 9 8 X1 6 3 3 X4 X3 1 8/5 3 3/5 3/5 X1 X3 1/3 7/5 1 0 0 1 X2 3 4 1 -1 4/5 -11/5 -1/3 1 - 2 4 X 3 5 5 4 0 1 0 0 1 0 0 X4 1 0 0 1 0 0 1/3 -1/ 5 -1/5 0 X5 0 1 0 -1 1/5 -4/5 -1/3 2/5 -3/5 VS (3,1 (3,0 (4,1 Vt (5,3 V2 解: (5,4 (7,5 V4 V1 (9,7 (4,4 V3 (6,4 (3,2 Vs (5,4 (4,0 Vt (7,7 6/9 V2 最大流=11 (5,5 V4 8. 某厂Ⅰ、Ⅱ、Ⅲ三种产品分别经过 A、B、C 三种设备加工。已知生产单位各种产品所需的设备台时,设备的现有加工能力及每件产品的预期利润见表:ⅠⅡⅢ设备能力(台.h A 1 1 1 100 B 10 4 5 600 C 2 2 6 300 单

运筹学例题

某昼夜服务的公交线路 解:设x i 表示第i班次时开始上班的司机和乘务人员数,这样我们建立如下的数学模型。目标函数:Min x1 + x2 + x3 + x4 + x5 + x6 s.t. x1 + x6≥60 x1 + x2≥70 x2 + x3≥60 x3 + x4≥50 x4 + x5≥20 x5 + x6≥30 x1,x2,x3,x4,x5,x6 ≥0 解得50,20,50,0,20,10(x1到x6)一共需要150人 一家中型的百货商场 解:设x i ( i = 1,2,…,7)表示星期一至日开始休息的人数,这样我们建立如下的数学模型。目标函数:Min x1 + x2 + x3 + x4 + x5 + x6 + x7 s.t. x1 + x2 + x3 + x4 + x5 ≥28 x2 + x3 + x4 + x5 + x6≥15 x3 + x4 + x5 + x6 + x7≥24 x4 + x5 + x6 + x7 + x1≥25 x5 + x6 + x7 + x1 + x2≥19 x6 + x7 + x1 + x2 + x3≥31 x7 + x1 + x2 + x3 + x4≥28 x1,x2,x3,x4,x5,x6,x7 ≥0 解得12.0.11.5.0.8.0(x1到x7) 最小值36 某工厂要做100套钢架 设x1,x2,x3,x4,x5 分别为5 种方案下料的原材料根数。这样我们建立如下的数学模型。 目标函数:Min x1 + x2 + x3 + x4 + x5 s.t. x1 + 2x2 +x4≥100 2x3+2x4 +x5≥100 3x1+x2+2x3+3x5≥100 x1,x2,x3,x4,x5≥0 解得30,10,0,50,0 只需要90根原料造100钢架某工厂要用三种原料1、2、3 设设x ij 表示第i 种(甲、乙、丙)产品中原料j 的含量。 目标函数:Max z = -15x11+25x12+15x13-30x21+10x22-40x31-10x33 s.t. 0.5 x11-0.5 x12 -0.5 x13≥0 -0.25x11+0.75x12 -0.25x13≤0 0.75x21-0.25x22 -0.25x23≥0 -0.5 x21+0.5 x22 -0.5 x23≤0 x11+x21 +x31≤100 x12+x22 +x32≤100 x13+x23+x33≤60 x ij≥0 , i = 1,2,3; j = 1,2,3 解得x11=100,x12=50,x13=50原料分别为第1种100 第2种50 第3种50 资源分配 解:将问题按工厂分为三个阶段,甲、乙、丙三个厂分别编号为1、2、3厂。设sk= 分配给第k个厂至第3个厂的设备台数(k=1、2、3)。xk=分配给第k个工厂的设备台数。 已知s1=5, 并有S2=T1(s1,x1)=s1-x1,S3=T2(s2,x2)=s2-x2从Sk与Xk的定义,可知s3=x3 以下我们从第三阶段开始计算。Maxr3(s3,x3)=r3(s3,x3)即F3(s3)= Maxr3(s3,x3)=r3(s3,x3). 第二阶段F2(s2)=max[r2(s2,x2)+f3(s3)]第一阶段当s1=5时最大盈利为f1(5)=max[r1(5,x1)+f2(5-x1)] 得出2个方案⑴分配给甲0台乙0台丙3台⑵分配甲2台乙2台丙1台,他们的总盈利值都是21. 背包 设Sk=分配给第k种咨询项目到第四种咨询项目的所有客户的总工作日Xk=在第k种咨询项目中处理客户的数量已知s1=10,有S2=T1(s1,x1)=s1-x1. S3=T2(s2,x2)=s2-3x2. S4=T3(s3,x3)=s3-4x3,第四阶段F4(s4)=maxr4(s4,x4)=r4(s4,[s4/7])第三阶段F3(s3)=max[r3(s3,x3)+f4(s3-4x3)]第二阶段F2(s2)=max[r2(s2,x2)+f3(s2-3x2)]第一阶段已知s1=10,又因s2=s1-x1有F1(10)=max[r1(10,x1)+f2(10-x1)] 综上当x1*=0,x2*=1,x3*=0,x4*=1,最大盈利为28 京城畜产品 解:设:0--1变量xi = 1 (Ai 点被选用)或0 (Ai 点没被选用)。这样我们可建立如下的数学模型:Max z =36x1+40x2+50x3+22x4+20x5+30x6+25x7+48x8+58x9+61x10 s.t. 100x1+120x2+150x3+80x4+70x5+90x6+80x7+140x8+160x9+180x10 ≤720 x1 + x2 + x3 ≤2 x4 + x5 ≥1 x6 + x7 ≥1 x8 + x9 + x10 ≥2 xi≥0 且xi为0--1变量,i = 1,2,3,……,10 函数值245 最优解1,1,0,0,1,1,0,0,1,1(x1到x10的解) 高压容器公司

运筹学习题答案

第一章习题 1.思考题 (1)微分学求极值的方法为什么不适用于线性规划的求解? (2)线性规划的标准形有哪些限制?如何把一般的线性规划化为标准形式? (3)图解法主要步骤是什么?从中可以看出线性规划最优解有那些特点? (4)什么是线性规划的可行解,基本解,基可行解?引入基本解和基可行解有什么作用? (5)对于任意基可行解,为什么必须把目标函数用非基变量表示出来?什么是检验数?它有什么作用?如何计算检验数? (6)确定换出变量的法则是什么?违背这一法则,会发生什么问题? (7)如何进行换基迭代运算? (8)大M法与两阶段法的要点是什么?两者有什么共同点?有什么区别? (9)松弛变量与人工变量有什么区别?试从定义和处理方式两方面分析。 (10)如何判定线性规划有唯一最优解,无穷多最优解和无最优解?为什么? 2.建立下列问题的线性规划模型: (1)某厂生产A,B,C三种产品,每件产品消耗的原料和设备台时如表1-18所示: 润最大的模型。 (2)某公司打算利用具有下列成分(见表1-19)的合金配制一种新型合金100公斤,新合金含铅,锌,锡的比例为3:2:5。 如何安排配方,使成本最低? (3)某医院每天各时间段至少需要配备护理人员数量见表1-20。

表1-20 假定每人上班后连续工作8小时,试建立使总人数最少的计划安排模型。能否利用初等数学的视察法,求出它的最优解? (4)某工地需要30套三角架,其结构尺寸如图1-6所示。仓库现有长6.5米的钢材。如何下料,使消耗的钢材最少? 图1-6 3. 用图解法求下列线性规划的最优解: ?????? ?≥≤+-≥+≥++=0 ,425.134 1 2 64 min )1(21212 12121x x x x x x x x x x z ?????? ?≥≤+≥+-≤++=0 ,82 5 1032 44 max )2(21212 12121x x x x x x x x x x z ????? ????≥≤≤-≤+-≤++=0 ,6 054 4 22232 96 max )3(2122 1212121x x x x x x x x x x x z ??? ??≥≤+-≥+ +=0,1 12 34 3 max )4(2 12 12121x x x x x x x x z

页式虚拟存储管理中地址转换和缺页中断实验参考2

页式虚拟存储管理中地址转换和缺页中断 一.实验目的 (1)深入了解存储管理如何实现地址转换。 (2)进一步认识页式虚拟存储管理中如何处理缺页中断。 二.实验内容 编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。 三.实验原理 页式存储管理把内存分割成大小相等位置固定的若干区域,叫内存页面,内存的分配以“页”为单位,一个程序可以占用不连续的页面,逻辑页面的大小和内存页面的大小相同,内外存的交换也以页为单位进行,页面交换时,先查询快表,若快表中找不到所需页面再去查询页表,若页表中仍未找到说明发生了缺页中断,需先将所需页面调入内存再进行存取。 四.实验部分源程序 #define size 1024//定义块的大小,本次模拟设为1024个字节。 #include "stdio.h" #include "string.h" #include struct plist { int number; //页号 int flag; //标志,如为1表示该页已调入主存,如为0则还没调入。 int block; //主存块号,表示该页在主存中的位置。 int modify; //修改标志,如在主存中修改过该页的内容则设为1,反之设为0 int location; //在磁盘上的位置 }; //模拟之前初始化一个页表。 struct plist p1[7]={{0,1,5,0,010},{1,1,8,0,012},{2,1,9,0,013},{3,1,1,0,021},{4,0,-1,0,022},{5,0,-1,0,023},{6, 0,-1,0,125}}; //命令结构,包括操作符,页号,页内偏移地址。 struct ilist { char operation[10]; int pagenumber; int address; }; //在模拟之前初始化一个命令表,通过程序可以让其顺序执行。 struct ilist p2[12]={{"+",0,72},{"5+",1,50},{"*",2,15},{"save",3,26},

计量经济学习题及参考答案解析详细版

计量经济学(第四版)习题参考答案 潘省初

第一章 绪论 试列出计量经济分析的主要步骤。 一般说来,计量经济分析按照以下步骤进行: (1)陈述理论(或假说) (2)建立计量经济模型 (3)收集数据 (4)估计参数 (5)假设检验 (6)预测和政策分析 计量经济模型中为何要包括扰动项? 为了使模型更现实,我们有必要在模型中引进扰动项u 来代表所有影响因变量的其它因素,这些因素包括相对而言不重要因而未被引入模型的变量,以及纯粹的随机因素。 什么是时间序列和横截面数据? 试举例说明二者的区别。 时间序列数据是按时间周期(即按固定的时间间隔)收集的数据,如年度或季度的国民生产总值、就业、货币供给、财政赤字或某人一生中每年的收入都是时间序列的例子。 横截面数据是在同一时点收集的不同个体(如个人、公司、国家等)的数据。如人口普查数据、世界各国2000年国民生产总值、全班学生计量经济学成绩等都是横截面数据的例子。 估计量和估计值有何区别? 估计量是指一个公式或方法,它告诉人们怎样用手中样本所提供的信息去估计总体参数。在一项应用中,依据估计量算出的一个具体的数值,称为估计值。如Y 就是一个估计量,1 n i i Y Y n == ∑。现有一样本,共4个数,100,104,96,130,则 根据这个样本的数据运用均值估计量得出的均值估计值为 5.1074 130 96104100=+++。 第二章 计量经济分析的统计学基础 略,参考教材。

请用例中的数据求北京男生平均身高的99%置信区间 N S S x = = 4 5= 用 =,N-1=15个自由度查表得005.0t =,故99%置信限为 x S t X 005.0± =174±×=174± 也就是说,根据样本,我们有99%的把握说,北京男高中生的平均身高在至厘米之间。 25个雇员的随机样本的平均周薪为130元,试问此样本是否取自一个均值为120元、标准差为10元的正态总体? 原假设 120:0=μH 备择假设 120:1≠μH 检验统计量 () 10/2510/25 X X μσ-Z == == 查表96.1025.0=Z 因为Z= 5 >96.1025.0=Z ,故拒绝原假设, 即 此样本不是取自一个均值为120元、标准差为10元的正态总体。 某月对零售商店的调查结果表明,市郊食品店的月平均销售额为2500元,在下一个月份中,取出16个这种食品店的一个样本,其月平均销售额为2600元,销售额的标准差为480元。试问能否得出结论,从上次调查以来,平均月销售额已经发生了变化? 原假设 : 2500:0=μH 备择假设 : 2500:1≠μH ()100/1200.83?480/16 X X t μσ-= === 查表得 131.2)116(025.0=-t 因为t = < 131.2=c t , 故接受原假 设,即从上次调查以来,平均月销售额没有发生变化。

运筹学例题解析

(一)线性规划建模与求解 B.样题:活力公司准备在5小时内生产甲、乙两种产品。甲、乙两种产品每生产1 单位分别消耗2小时、1小时。又根据市场需求信息,乙产品的产量应该至少是甲产品产量的3倍。已知甲、乙两种产品每销售1单位的利润分别为3百元和1百元。请问:在5小时内,甲、乙两种产品各生产多少单位,才能够使得总销售利润最大 要求:1、建立该问题的线性规划模型。 2、用图解法求出最优解和最大销售利润值,并写出解的判断依据。如果不存在最优解,也请说明理由。 解:1、(1)设定决策变量: 设甲、乙两种产品分别生产x 1 、x 2 单位 。 (2)目标函数: max z=2 x 1+x 2 (3)约束条件如下:1221 12 25..3,0+≤??≥??≥?x x s t x x x x 2、该问题中约束条件、目标函数、可行域和顶点见图1所示,其中可行域用阴影部分标记,不等式约束条件及变量约束要标出成立的方向,目标函数只须画出其中一条等值线, 结论:本题解的情形是: 无穷多最优解 ,理由: 目标函数等值线 z=2 x 1+x 2与约 束条件2 x 1+x 2≤5的边界平行 。甲、乙两种产品的最优产量分别为 (5,0)或(1,3)单位;最大销售利润值等于 5 百元。 (二)图论问题的建模与求解样题 A.正考样题(最短路问题的建模与求解,清华运筹学教材编写组第三版267-268页例 13)某企业使用一台设备,每年年初,企业都要做出决定,如果继续使用旧的,要付维修费;若购买一台新设备,要付购买费。但是变卖旧设备可以获得残值收入,连续使用1年、2年、3年、4年以上卖掉的设备残值分别为8万元、6万元、3万元和0万元。试制定一个5年的更新计划,使总支出最少。已知设备在各年的购买费与维修费如表2所示。要求:(1)建立某种图论模型;(2)求出最少总支出金额。

《运筹学》题库

运筹学习题库 数学建模题(5) 1、某厂生产甲、乙两种产品,这两种产品均需要A 、B 、C 三种资源,每种产品的资源消耗量及单位产品销售后所能获得的利润值以及这三种资源的储备如下表所示: 试建立使得该厂能获得最大利润的生产计划的线性规划模型,不求解。 解:设甲、乙产品的生产数量应为x1、x2,则x1、x2≥0,设z 是产品售后的总利润,则 max z =70x 1+120x 2 s.t. ????? ??≥≤+≤ +≤+0 300103200643604921212121x x x x x x x x , 2建立使利润最大的生产计划的数学模型,不求解。 解:设甲、乙两种产品的生产数量为x 1、x 2, 设z 为产品售后总利润,则max z= 4x 1+3x 2 s.t. ???????≥≤≤+≤+ ,50040005.253000222112121x x x x x x x 3、一家工厂制造甲、乙、丙三种产品,需要三种资源——技术服务、劳动力和行政管理。每种产品的资源消耗量、单位产品销售后所能获得的利润值以及这三种资源的储备量如下表所示:

建立使得该厂能获得最大利润的生产计划的线性规划模型,不求解。 解:建立线性规划数学模型: 设甲、乙、丙三种产品的生产数量应为x 1、x 2、x 3,则x 1、x 2、x 3≥0,设z 是产品售后的总利润,则 max z =10x 1+6x 2+4x 3 s.t. ???????≥≤++≤++≤++0 3006226005410100321321321321x x x x x x x x x x x x ,, 4、一个登山队员,他需要携带的物品有:食品、氧气、冰镐、绳索、帐篷、照相器材、通 信器材等。每种物品的重量合重要性系数如表所示。设登山队员可携带的最大重量为25kg,试建立队员所能携带物品最大量的线性规划模型,不求解。 解:引入0—1变量x i , x i =1表示应携带物品i ,,x i =0表示不应携带物品I ?? ?==≤++++++++++++=7 ,...,2,1,10254212625510481418152076543217654321i x x x x x x x x x x x x x x x naxz i 或 5、工厂每月生产A 、B 、C 三种产品,单件产品的原材料消耗量、设备台时的消耗量、资源根据市场需求,预测三种产品最低月需求量分别是150、260、120,最高需求量是250、310、130,试建立该问题数学模型,使每月利润最大,为求解。 解:设每月生产A 、B 、C 数量为321,,x x x 。 321121410x x x MaxZ ++= 250042.15.321≤++x x x

模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断

实验二模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断 1.内容:模拟请求页式存储管理中硬件的地址转换和缺页中断处理 2.思想: 装入新页置换旧页时,若旧页在执行中没有被修改过,则不必将该页重写磁盘。因此,页表中增加是否修改过的标志,执行“存”指令和“写”指令时将对应的修改标志置成“1” 3.要求及方法: ①设计一个地址转换程序来模拟硬件的地址转换和缺页中断。当访问的页在主存时则形成绝对地址,但不去模拟指令的执行,可以输出转换后的绝对地址来表示一条指令已执行完成。当访问的页不在主存中时,则输出“*页号”来表示硬件产生了一次缺页中断。模拟地址转换流程见图1。 ②编制一个FIFO页面调度程序;FIFO页面调度算法总是先调出作业中最先进入主存中的哪一页。因此可以用一个数组来表示(或构成)页号队列。数组中每个元素是该作业已在主存中的页面号,假定分配给作业的页架数为m,且该作业开始的m页已装入主存,则数组可由m个元素构成。 P[0],P[1],P[2],…,P[m-1] 它们的初值为P[0]:=0,P[1]:=1,P[2]:=2,…,P[m-1]:=m-1 用一指针K指示当要调入新页时应调出的页在数组中的位置,K的初值为“0”,当产生缺页中断后,操作系统总是选择P[K]所指出的页面调出,然后执行: P[K]:=要装入的新页页号 K:=(k+1)mod m 在实验中不必实际地启动磁盘执行调出一页和装入一页的工作,而用输出“OUT调出的页号”和“IN要装入的新页页号”来模拟一次调出和装入过程,模拟程序的流程图见附图1。 按流程控制过程如下:

计量经济学练习题答案完整

1、已知一模型的最小二乘的回归结果如下: i i ?Y =101.4-4.78X (45.2)(1.53) n=30 R 2=0.31 其中,Y :政府债券价格(百美元),X :利率(%)。 回答以下问题: (1)系数的符号是否正确,并说明理由;(2)为什么左边是i ?Y 而不是i Y ; (3)在此模型中是否漏了误差项i u ;(4)该模型参数的经济意义是什么。 答:(1)系数的符号是正确的,政府债券的价格与利率是负相关关系,利率的上升会引起政府债券价格的下降。 (2)i Y 代表的是样本值,而i ?Y 代表的是给定i X 的条件下i Y 的期望值,即?(/)i i i Y E Y X 。此模型是根据样本数据得出的回归结果,左边应当是i Y 的期望值,因此是i ?Y 而不是i Y 。 (3)没有遗漏,因为这是根据样本做出的回归结果,并不是理论模型。 (4)截距项101.4表示在X 取0时Y 的水平,本例中它没有实际意义;斜率项-4.78表明利率X 每上升一个百分点,引起政府债券价格Y 降低478美元。 2、有10户家庭的收入(X ,元)和消费(Y ,百元)数据如下表: 10户家庭的收入(X )与消费(Y )的资料 X 20 30 33 40 15 13 26 38 35 43 Y 7 9 8 11 5 4 8 10 9 10 若建立的消费Y 对收入X 的回归直线的Eviews 输出结果如下: Dependent Variable: Y

Variable Coefficient Std. Error X 0.202298 0.023273 C 2.172664 0.720217 R-squared 0.904259 S.D. dependent var 2.233582 Adjusted R-squared 0.892292 F-statistic 75.55898 Durbin-Watson stat 2.077648 Prob(F-statistic) 0.000024 (1)说明回归直线的代表性及解释能力。 (2)在95%的置信度下检验参数的显著性。(0.025(10) 2.2281t =,0.05(10) 1.8125t =,0.025(8) 2.3060t =,0.05(8) 1.8595t =) (3)在95%的置信度下,预测当X =45(百元)时,消费(Y )的置信区间。(其中29.3x =,2()992.1x x -=∑) 答:(1)回归模型的R 2=0.9042,表明在消费Y 的总变差中,由回归直线解释的部分占到90%以上,回归直线的代表性及解释能力较好。 (2)对于斜率项,11 ? 0.20238.6824?0.0233 ()b t s b ===>0.05(8) 1.8595t =,即表明斜率项 显著不为0,家庭收入对消费有显著影响。对于截距项, 00? 2.1727 3.0167?0.7202 ()b t s b ===>0.05(8) 1.8595t =, 即表明截距项也显著不为0,通过了显著性检验。 (3)Y f =2.17+0.2023×45=11.2735 0.025(8) 1.8595 2.2336 4.823t ?=?= 95%置信区间为(11.2735-4.823,11.2735+4.823),即(6.4505,16.0965)。

运筹学例题及解答

运筹学例题及解答 一、市场对I、II两种产品的需求量为:产品I在1-4月每月需10000件,5-9月每月需30000件,10-12月每月需100000件;产品II在3-9月每月需15000件,其它月份每月需50000件。某厂生产这两种产品成本为:产品I在1-5月内生产每件5元,6-12月内生产每件4.50元;产品II在1-5月内生产每件8元,6-12月内生产每件7元。该厂每月生产两种产品能力总和应不超过120000件。产品I容积每件0.2立方米,产品II容积每件0.4立方米,而该厂仓库容积为15000立方米,要求:(a)说明上述问题无可行解;(b)若该厂仓库不足时,可从外厂借。若占用本厂每月每平方米库容需1元,而租用外厂仓库时上述费用增加为1.5元,试问在满足市场需求情况下,该厂应如何安排生产,使总的生产加库存费用为最少。 解:(a) 10-12月份需求总计:100000X3+50000X3=450000件,这三个月最多生产120000X3=360000件,所以10月初需要(450000-360000=90000件)的库存,超过该厂最大库存容量,所以无解。 ? ?(b)考虑到生产成本,库存费用和生产费用和生产能力,该厂10-12月份需求的不足只需在7-9月份生产出来库存就行, 则设xi第i个月生产的产品1的数量,yi第i个月生产的产品2 的数量,zi,wi分别为第i个月末1,2的库存数s1i,s2i分别

为用于第i+1个月库存的原有及租借的仓库容量m3,可建立模型: Lingo 程序为 MODEL: sets: row/1..16/:; !这里n 为控制参数; col/1..7/:; AZ(row,col):b,x; endsets 1211 127777778 7887898998910910109101110111110111211min (4.57)( 1.5) 30000150003000015000300001500030000150003000015000.i i i i i i z x y s s x z y w x z z y w w x z z y w w x z z y w w x z z y w w st x z ===+++-=→-=+-=→+-=+-=→+-=+-=→+-=+-=→+-=+∑∑1211121100005000 120000(712)0.20.415000(712)0i i i i i i i y w x z i z w s s s i ?????????=→+=??+≤≤≤?+=+??≤≤≤???变量都大于等于

相关文档
最新文档