最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

1005 繼續(xù)(3n+1)猜想 (Python)

2023-06-03 00:34 作者:咲月未羽  | 我要投稿

卡拉茲(Callatz)猜想已經(jīng)在1001中給出了描述。在這個題目里,情況稍微有些復(fù)雜。

當(dāng)我們驗證卡拉茲猜想的時候,為了避免重復(fù)計算,可以記錄下遞推過程中遇到的每一個數(shù)。例如對?n=3?進(jìn)行驗證的時候,我們需要計算 3、5、8、4、2、1,則當(dāng)我們對?n=5、8、4、2 進(jìn)行驗證的時候,就可以直接判定卡拉茲猜想的真?zhèn)?,而不需要重?fù)計算,因為這 4 個數(shù)已經(jīng)在驗證3的時候遇到過了,我們稱 5、8、4、2 是被 3“覆蓋”的數(shù)。我們稱一個數(shù)列中的某個數(shù)?n?為“關(guān)鍵數(shù)”,如果?n?不能被數(shù)列中的其他數(shù)字所覆蓋。

現(xiàn)在給定一系列待驗證的數(shù)字,我們只需要驗證其中的幾個關(guān)鍵數(shù),就可以不必再重復(fù)驗證余下的數(shù)字。你的任務(wù)就是找出這些關(guān)鍵數(shù)字,并按從大到小的順序輸出它們。

輸入格式:

每個測試輸入包含 1 個測試用例,第 1 行給出一個正整數(shù)?K?(<100),第 2 行給出?K?個互不相同的待驗證的正整數(shù)?n?(1<n100)的值,數(shù)字間用空格隔開。

輸出格式:

每個測試用例的輸出占一行,按從大到小的順序輸出關(guān)鍵數(shù)字。數(shù)字間用 1 個空格隔開,但一行中最后一個數(shù)字后沒有空格。

輸入樣例:

6
3 5 6 7 8 11

輸出樣例:

7 6

題意:輸出在做遞推的過程中那些沒有被訪問到的數(shù)。

小技巧:訪問到的數(shù)放入集合vis,原數(shù)組作為集合L,使用Python集合的差運算L - vis求出結(jié)果。

K = int(input())
L = list(map(int, input().split()))
vis = set()
for n in L:
 ? ?while n != 1:
 ? ? ? ?n = [n, n * 3 + 1][n % 2] // 2
 ? ? ? ?vis.add(n)
ans = [n for n in set(L).difference(vis)]
print(" ".join(map(str, sorted(ans, reverse=True))))

另一種寫法:

K = int(input())
L = set(map(int, input().split()))
vis = set()
for n in L:
 ? ?while n != 1:
 ? ? ? ?n = [n, n * 3 + 1][n % 2] // 2
 ? ? ? ?vis.add(n)
ans = sorted([-n for n in L - vis])
print(" ".join(map(lambda x: str(-x), ans)))


1005 繼續(xù)(3n+1)猜想 (Python)的評論 (共 條)

分享到微博請遵守國家法律
南宁市| 公主岭市| 城固县| 浠水县| 葫芦岛市| 宝山区| 隆德县| 衡南县| 临西县| 井研县| 榆中县| 左云县| 和静县| 耒阳市| 麻阳| 余干县| 和林格尔县| 潼关县| 华阴市| 错那县| 潢川县| 东乌珠穆沁旗| 旬邑县| 万宁市| 文山县| 临桂县| 漳浦县| 临湘市| 丰原市| 灌阳县| 鄂伦春自治旗| 遵化市| 黎平县| 桑植县| 高清| 亚东县| 馆陶县| 临海市| 屏南县| 望奎县| 子洲县|