芯片测试
测试方法: 将2片芯片(A和B)置于 测试台上,互相进行测试,测试报告是“好”或“坏”,只取其一。
假设: 好芯片的报告一定是正确的,坏芯片的报告是不确定的(可能会出错)。
要求: 设计一种测试方法,通过测试从n 片芯片中挑出 1 片好芯片。
#include<iostream>
#include<time.h>
using namespace std;
//---------------------
struct Node{
//因为计数值在递归里一直传不了,所以直接建立一个结点来记录算了
int time;
int len;
int L;
Node* next;
};
//---------------------------
Node* CreateList()
{
Node *h;
//
h = new Node;
h->next=NULL;
//
return h;
}
//-------------------
int UseRand(int A[],int i,int j)
{
int x1,y1;
x1=y1=1;
//-----------------------------------------rand()%2 up
if (A[i]==1)
{
x1=(A[j]&&1);
}
else
x1=rand()%2;
//-----------------------
if (A[j]==1)
{
y1=(A[i]&&1);
}
else
y1=rand()%2;
//---------------------------rand()%2 down
if((x1==1)&&(y1==1))
return 1;
else return 0;
}
int CompareItAll(int A[],Node* time)
{
time->L++;
int n=0;
int m=