Python3暴力解題,計算鬼谷子猜數問題

2021-08-21 04:56:28 字數 1879 閱讀 8329

這題是我看**的時候,作者在**文中提到的,原題是這樣的:

鬼谷子隨意從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出...