基礎練習22- 芯片測試(python答案)

基礎練習 芯片測試

問題描述
  有n(2≤n≤20)塊芯片,有好有壞,已知好芯片比壞芯片多。
  每個芯片都能用來測試其他芯片。用好芯片測試其他芯片時,能正確給出被測試芯片

是好還是壞。而用壞芯片測試其他芯片時,會隨機給出好或是壞的測試結果(即此結果與

被測試芯片實際的好壞無關)。
  給出所有芯片的測試結果,問哪些芯片是好芯片。
輸入格式
  輸入數據第一行爲一個整數n,表示芯片個數。
  第二行到第n+1行爲n*n的一張表,每行n個數據。表中的每個數據爲0或1,在這n行

中的第i行第j列(1≤i, j≤n)的數據表示用第i塊芯片測試第j塊芯片時得到的測試結果,1

表示好,0表示壞,i=j時一律爲1(並不表示該芯片對本身的測試結果。芯片不能對本身

進行測試)。
輸出格式
  按從小到大的順序輸出所有好芯片的編號
樣例輸入
3
1 0 1
0 1 0
1 0 1
樣例輸出
1 3

"""
理解下題目,好的芯片測試別的芯片就是正確的結果,
壞的就是隨機的結果,題目中又說,第i,j位置的含義爲i芯片測試j芯片的結果,
那麼,第j列就是其他芯片測試j的結果,題目中說好的好芯片的數量大於壞芯片的數量,
那麼我們就統計j列的數字1多點還是0多點,就可以判斷芯片的好壞了"""
n=int(input())
if n>1 and n<21:
    test = [[]*n]*n
    for i in range(n):#往數組中添加原始記錄
        test[i] = [int(j) for j in input().split()] 
    for j in range(n):
        tra = 0
        #定義一個光標,該位置爲1的光標加1
        for i in range(n):
            if test[i][j]==1:
                tra +=1
        if tra > int(n/2):
            print(j+1,sep=' ',end=' ')

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章