Python Code:
@ 此code是針對(b),但這題目的數字太大了,跑不出來,數字小一點才可以!!!
import numpy as np
import time
n =4
s = np.array(range(1,n+1))
#print(s)
tStart = time.time()#計時開始
flag=0
for i in range(2 ** len(s)):#子集的個數
combine = []
for j in range(len(s)):#用來判斷二進制數的下標爲j的位置的數是否爲1
if (i >> j) % 2:
combine.append(s[j])
for k in range(0,len(combine)):
for l in range(k+1,len(combine)):
if (combine[k]+combine[l])==3:
print(combine)
flag+=1
else:
continue
tEnd = time.time()#計時結束
print((2**n)-flag)
print("It cost %f sec" % (tEnd - tStart))#會自動做近位
沒有留言:
張貼留言