首页 > 通信工程师
题目内容 (请给出正确答案)
[主观题]

问题描述:有mxn(m≤100,n≤100)校金币在桌面上排成一个m行n列的金币阵列.每枚金币或正面朝上或背

问题描述:有mxn(m≤100,n≤100)校金币在桌面上排成一个m行n列的金币阵列.每枚金币或正面朝上或背面朝上.用数字表示金币状态,0表示金币正面朝上,1表示金币背面朝上.

金币阵列游戏的规则是:①每次可将任-行金币翻过来放在原来的位置上;②每次可任选2列,交换这2列金币的位置.

算法设计:给定金币阵列的初始状态和目标状态,计算按金币游戏规则,将金币阵列从初始状态变换到H标状态所需的最少变换次数.

数据输入:由文件input.txt给出输入数据.文件中有多组数据.文件的第1行有1个正整数k.表示有k组数据.每组数据的第1行有2个正整数m和n.以下m行是金币阵列的初始状态,每行有n个数字表示该行金币的状态,0表示正面朝上,1表示背面朝上.接着的m行是金币阵列的目标状态.

结果输出:将计算出的最少变换次数按照输入数据的次序输出到文件output.txt.相应数据无解时,输出-1.

问题描述:有mxn(m≤100,n≤100)校金币在桌面上排成一个m行n列的金币阵列.每枚金币或正面

问题描述:有mxn(m≤100,n≤100)校金币在桌面上排成一个m行n列的金币阵列.每枚金币或正面

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“问题描述:有mxn(m≤100,n≤100)校金币在桌面上排…”相关的问题
第1题
试题四(15分)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】某工程计

试题四(15分)

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

某工程计算中要完成多个矩阵相乘(链乘)的计算任务。

两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算Am*n*Bn*p,需要m*n*p次乘法运算。

矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A110*100,A2100*5,A35*50三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行10*100*5+10*5*50=7500次乘法运算;若按A1*(A2*A3)计算,则需要进行100*5*50+10*100*50=75000次乘法运算。可见不同的计算顺序对计算量有很大的影响。

矩阵链乘问题可描述为:给定n个矩阵<A1,A2,….An>,矩阵Ai的维数为pi-1*Pi,其中i = 1,2,….n。确定一种乘法顺序,使得这n个矩阵相乘时进行乘法的运算次数最少。

由于可能的计算顺序数量非常庞大,对较大的n,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若A1*A2*…*An的一个最优计算顺序从第k个矩阵处断开,即分为A1*A2*….Ak和Ak+1*Ak+2*…*An两个子问题,则该最优解应该包含A1*A2*…*Ak的一个最优计算顺序和Ak+1*Ak+2*…An的一个最优计算顺序。据此构造递归式,

其中,cost[i][j]表示Ai+1*Ai+2*...Aj+1的最优计算的计算代价。最终需要求解cost[0][n-1]。

【C代码】

算法实现采用自底向上的计算过程。首先计算两个矩阵相乘的计算量,然后依次计算3个矩阵、4个矩阵、…、n个矩阵相乘的最小计算量及最优计算顺序。下面是算法的C语言实现。

(1)主要变量说明

n:矩阵数

seq[]:矩阵维数序列

cost[][]:二维数组,长度为n*n,其中元素cost[i][j]表示Ai+1*Ai+2*…Aj+1的最优计算的计算代价

trace[][]:二维数组,长度为n*n,其中元素trace[i][j]表示Ai+1*Ai+2*Aj+1的最优计算对应的划分位置,即k

(2)函数cmm

define N 100

intcost[N][N];

inttrace[N][N];

int cmm(int n,int seq[]){

int tempCost;

int tempTrace;

int i,j,k,p;

int temp;

for(i=0;i<n;i++){ cost[i][i] =0;}

for(p=1;p<n;p++){

for(i=0; (1) ;i++){

(2);

tempCost = -1;

for(k = i;k<j;k++){

temp = (3) ;

if(tempCost==-1||tempCost>temp){

tempCost = temp;

(4) ;

}

}

cost[i][j] = tempCost;

trace[i][j] = tempTrace;

}

}

return cost[0][n-1];

}

【问题1】(8分)

根据以上说明和C代码,填充C代码中的空(1)~(4)。

【问题2】(4分)

根据以上说明和C代码,该问题采用了 (5) 算法设计策略,时间复杂度 (6) 。(用O符号表示)

【问题3】(3分)

考虑实例n=6,各个矩阵的维数:A1为5*10,A2为10*3,A3为3*12,A4为12*5,A5为5*50,A6为50*6,即维数序列为5,10,3,12,5,50,6。则根据上述C代码得到的一个最优计算顺序为 (7) (用加括号方式表示计算顺序),所需要的乘法运算次数为 (8) 。

点击查看答案
第2题
问题描述:第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每
架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中名是英国飞行员,另一名是外籍飞行员.在众多的飞行员中,每名外籍飞行员都可以与其他若干名英国飞行员很好地配合.如何选择配对飞行的飞行员才能使一次派出最多的飞机.

算法设计:对于给定的外籍飞行员与英国飞行员的配合情况,找出个最佳飞行员配对方案,使皇家空军一次能派出最多的飞机.

数据输入:由文件input.txt提供输入数据.文件第1行有两个止整数m和n.n是皇家空军的飞行员总数(n<100);m是外籍飞行员数.外籍飞行员编号为1~m;英国飞行员编号为m+1~n.接下来每行有两个正整数i和j,表示外籍飞行员i可以和英国飞行员j配合.文件最后以两个-1结束.

结果输出:将最佳飞行员配对方案输出到文件output.txt.第1行是最佳飞行员配对方案一次能派出的最多的飞机数M.接下来的M行是最佳飞行员配对方案.每行有两个正整数i和j,表示在最佳飞行员配对方案中,飞行员i和飞行员j配对.

如果所求的最佳飞行员配对方案不存在,则输出“NoSolution!".

点击查看答案
第3题
问题描述:在网络通信系统中,要将n个数据包依次分配给m个处理器进行数据处理,并要求处理器负载
尽可能均衡.设给定的数据包序列为.m处理器问题要求的是,将数据包序列划分为m段:使达到最小.式中,是序列的负载量.

的最小值称为数据包序列的均衡负载量.

算法设计:对于给定的数据包序列,计算m个处理器的均衡负载量.

数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m.n表示数据包个数,m表示处理器数.接下来的1行中有n个整数,表示n个数据包的大小.

结果输出:将计算的处理器均衡负载量输出到文件output,txt,且保留2位小数.

点击查看答案
第4题
问题描述:在一个有m×n个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意两个数
所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法.

算法设计:对于给定的方格棋盘,按照取数要求找出总和最大的数.

数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,分别表示棋盘的行数和列数.接下来的m行,每行有n个正整数,表示棋盘方格中的数.

结果输出:将取数的最大总和输出到文件output.txt.

点击查看答案
第5题
试题四(共15 分) 阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答题纸的对应栏内。 【说明】

试题四(共15 分)

阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答题纸的对应栏内。

【说明】

某应用中需要对100000 个整数元素进行排序,每个元素的取值在 0~5 之间。排序算法的基本思想是:对每一个元素 x,确定小于等于 x的元素个数(记为m),将 x放在输出元素序列的第m 个位置。对于元素值重复的情况,依次放入第 m-l、m-2、…个位置。例如,如果元素值小于等于4 的元素个数有 10 个,其中元素值等于 4 的元素个数有3个,则 4 应该在输出元素序列的第10 个位置、第 9 个位置和第8 个位置上。

算法具体的步骤为:

步骤1:统计每个元素值的个数。

步骤2:统计小于等于每个元素值的个数。

步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。

【C代码】

下面是该排序算法的C语言实现。

(1)常量和变量说明

R:常量,定义元素取值范围中的取值个数,如上述应用中 R值应取6i:循环变量

n:待排序元素个数

a:输入数组,长度为n

b:输出数组,长度为n

c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。

(2)函数sort

1 void sort(int n,int a[ ],intb[ ]){

2 int c[R],i;

3 for (i=0;i< (1) ;i++){

4 c[i]=0;

5 }

6 for(i=0;i<n;i++){

7 c[a[i]] = (2) ;

8 }

9 for(i=1;i<R;i++){

10 c[i]= (3) ;

11 }

12 for(i=0;i<n;i++){

13 b[c[a[i]]-1]= (4) ;

14 c[a[i]]=c[a[i] ]-1;

15 }

16 }

【问题1】(8 分)

根据说明和C代码,填充 C代码中的空缺(1)~(4)。

【问题2】(4 分)

根据C代码,函数的时间复杂度和空间复杂度分别为 (5) 和 (6) (用 O符号

表示)。

【问题3】(3 分)

根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过 100 字);

若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。

从下列的2 道试题(试题五和试题六)中任选 1 道解答。

如果解答的试题数超过 道,则题号小的 道解答有效。

点击查看答案
第6题
问题描述:给定一个赋权无向图G=(V,E),每个顶点都有权值w(v).如果,且对任意(u,V)∈E有u∈U或v∈U,

问题描述:给定一个赋权无向图G=(V,E),每个顶点都有权值w(v).如果,且对任意(u,V)∈E有u∈U或v∈U,就称U为图G的一个顶点覆盖.G的最小权顶点覆盖是指G中所含顶点权之和最小的顶点覆盖.

算法设计:对于给定的无向图G,设计一个优先队列式分支限界法,计算G的最小权顶点覆盖.

数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m,表示给定的图G有n个顶点和m条边,顶点编号为1,2,...,n.第2行有n个正整数表示n个顶点的权.接下来的m行中,每行有2个正整数u和v,表示图G的一条边(u,v).

结果输出:将计算的最小权顶点覆盖的顶点权值和以及最优解输出到文件output.txt.文件的第1行是最小权顶点覆盖顶点权之和;第2行是最优解xi(1≤i≤n),xi=0表示顶点i不在最小权顶点覆盖中,xi=1表示顶点i在最小权顶点覆盖中.

点击查看答案
第7题
下列程序的功能是:输出10到100之间的所有回文素数。所谓回文素数是指,如果一个数是素数,则该数反
序后形成的数也是素数。例如,13是素数,13反序形成得到数为31,31也是素数,则称13为回文素数。

Private Sub Command1 2_Click()

Dim k As Integer,m As Integer,n AsInteger

For k=10 T0 100

If prim(k)Then

m=__________

n=0

Do While m>0

N=n*10+Im Mod l0

M=m/10

Loop

If prim(n)Then

MsgBox k&“,”&n

End If

End If

Next k

End Sub

Public Function prim(n As Integer)As Boolean

Dim j As Integer

For j=2 To n/2

If n Mod J=0 Then

prim=__________

Exit Function

End If

Next j

prim=True

Exit Function

End Function

横线处应填写的内容是()。

A.k Fake

B.k True

C.m False

D.n True

点击查看答案
第8题
某出口商品100 箱,每箱尺寸10×20×30CM,每箱毛重30KGS。如果海运费计收标准按W/M 计,则承运人按重量吨计收运费。()此题为判断题(对,错)。
点击查看答案
第9题
问题描述:给定k个正整数,用算术运算符+、-、*./将这k个正整数连接起来,使最终的得数恰为m.算法

问题描述:给定k个正整数,用算术运算符+、-、*./将这k个正整数连接起来,使最终的得数恰为m.

算法设计:对于给定的k个正整数,给出计算m的算术表达式.

数据输入:由文件input.txt给出输入数据.第1行有2个正整数k和m,表示给定k个正整数,且最终的得数恰为m.接下来的一行中有k个正整数.

结果输出:将计算m的算术表达式输出到文件output.txt.如果有多个满足要求的表达式,只要输出一组,每步算式用分号隔开.如果无法得到m,则输出“NoSolution!”.

点击查看答案
第10题
对于一个3位的正整数m,取出它的个位数字t(t为整型)的表达式是______。A.t=m/100%10B.t=(m-m/100*1

对于一个3位的正整数m,取出它的个位数字t(t为整型)的表达式是______。

A.t=m/100%10

B.t=(m-m/100*100)%10

C.t=m/lO%10

D.t=m/10

点击查看答案
第11题
使用VC6打开考生文件夹下的工程test37_1,此工程包含一个源程序文件test37_1.cpp,但该程序运行有
问题,请改正函数中的错误,使该程序的输出结果为:

0149 16 25 36 49 64 81

源程序文件test37_1.cpp清单如下:

include<iostream.h>

template <class T, int N = 100> class Vector

{

T vec[N];

public:

void set(int pos, T val);

T get(iht pos);

/***************** found *****************/

}

template <class T, int N> void Vector<T, N>::set(int pos, T val)

{

vec[pos] = val;

}

/***************** found *****************/

template <class T, int N> Vector<T, N>::get(int pos)

{

return vec[pos];

}

int main ()

{

Vector<double, 10> v;

int i = 0;

double d = 0.0;

for (i = 0; i < 10; i++)

v.set(i, double(i * i));

for (i = 0; i < 10; i++)

cout<<v.get(i)<<" ";

cout<<end1;

/***************** found *****************/

}

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改