基礎練習 芯片測試
問題描述
有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=' ')