a = 'abc'
#取得所有二進位
t = []
for i in range(8):
t.append(f'{i:03b}')
#是1的就輸出字元
for j in t:
# print(j)
s = ''
for k in range(3):
if j[k]=='1':
# print(a[k])
s+=a[k]
# print(s)
#改為求子集通式
a = 'abcd'
n = len(a)
#取得所有二進位
t = []
for i in range(2**n):
t.append(f'{i:{n}b}')
#是1的就輸出字元
ss = []
for j in t:
s = ''
for k in range(n):
if j[k]=='1':
# print(a[k])
s+=a[k]
ss.append(s)
# print(ss)
#應用:利用求子集通式解lis
def checkasc(sa):
for i in range(1,len(sa)):
if not(sa[i-1]<sa[i]):return False
return True
a = [1,3,5,6,9,8,6,4,2]
n = len(a)
#取得所有二進位
t = []
for i in range(2**n):
t.append(f'{i:{n}b}')
#是1的就輸出字元
ss = []
for j in t:
s = []
for k in range(n):
if j[k]=='1':
# print(a[k])
s.append(a[k])
ss.append(s)
# print(ss)
sss = []
for i in ss:
if checkasc(i):
sss.append(i)
# print(sss)
lsss = [len(i) for i in sss]
rlsss = [i for i in sss if len(i)==max(lsss)]
print(max(lsss))
print(rlsss)
沒有留言:
張貼留言