這題是我看**的時候,作者在**文中提到的,原題是這樣的:
鬼谷子隨意從2-99中選取了兩個數。他把這兩個數的和告訴了龐涓,把這兩個數的乘積告訴了孫臏。但孫臏和龐涓彼此不知到對方得到的數。龐涓很有自信的對孫臏說:雖然我不知到這兩個數是什麼,但我知道你一定也不知道。隨後,孫臏說:那我知道了。龐涓說:那我也知道了。問這兩個數是什麼?
import itertools
import math
# 全部
a = range(2,100)
# # 質數
# b = list(filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,100+1)))
# 所有可能組合
c = [i for i in itertools.combinations(a, 2)]
print('所有可能的兩個數字組合,共%d項'%len(c))
# 龐涓:我肯定你不知道
times = [i[0]*i[1] for i in c]
temp =
for i in range(len(times)):
if times.count(times[i])==1:
print('先求出專案相乘得到的乘數唯一的可能,共%d項'%len(temp))
temp2 = set([sum(i) for i in temp])
print('計算這些唯一項的和,得到和數共有%d種'%len(temp2))
te*** =
for i in c:
if sum(i) not
in temp2:
c = te***
print('因為肯定不唯一,所以和數一定不在上述和數當中,剔除後剩餘項%d項'%len(c))
# 龐涓:我不知道(和數不唯一)
plus = [i[0]+i[1] for i in c]
temp =
for i in range(len(c)):
if plus.count(plus[i])!=1:
c = temp
print('專案相加得到的和數不唯一,剩餘項%d項'%len(c))
# 孫臏:聽你一說所現在知道了(乘數唯一)
times = [i[0]*i[1] for i in c]
temp =
for i in range(len(c)):
if times.count(times[i])==1:
c = temp
print('兩數相乘答案唯一,剩餘項%d項'%len(c))
# 龐涓:我也知道了(和數唯一)
plus = [i[0]+i[1] for i in c]
temp =
for i in range(len(c)):
if plus.count(plus[i])==1:
c = temp
print('兩數相加答案唯一,剩餘項%d項'%len(c))
print(c)
得到答案:
所有可能的兩個數字組合,共4753項
先求出專案相乘得到的乘數唯一的可能,共1732項
計算這些唯一項的和,得到和數共有183種
因為肯定不唯一,所以和數一定不在上述和數當中,剔除後剩餘項145項
專案相加得到的和數不唯一,剩餘項145項
兩數相乘答案唯一,剩餘項86項
兩數相加答案唯一,剩餘項1項
[(4, 13)]
[finished in 0.4s]
打完收工,接著看** Python3實現WiFi密碼暴力破解
注 可行性不高,和那些暴力破解wifi的軟體差不多,可能等個幾個鐘都沒破解完,純屬娛樂 萬一運氣好呢哈哈 需要安裝的擴充套件包 pywifi,依賴包 comtypes 以下是源 import time import pywifi from pywifi import const from async...
Python3 解題 字串壓縮
原題 題目 字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2...
python3 計算python指令碼的執行時間
首先說一下我遇到的坑,生產上遇到的問題,我排程python指令碼執行並監控這個程序,python指令碼執行時間遠遠大於python指令碼中自己統計的程式執行時間。監控python指令碼執行的時間是36個小時,而python指令碼中統計自己執行的時間是4個小時左右。問題暴漏之後首先想到的是linux出...