Re: [爆卦] 小商人發文啦 (青青最新發文)

看板Gossiping作者 (charlesgg)時間2年前 (2022/01/20 13:02), 編輯推噓7(811)
留言10則, 10人參與, 2年前最新討論串9/11 (看更多)
※ 引述《sceleton (台科日乱写)》之銘言: : ※ 引述《kawazakiz2 (輪蛇)》之銘言: : 小商人也真壞,要碼也不碼的乾淨一點 : 某一張照片可以看到身分證後4碼 : https://shorturl.at/emuBR : 再加上之前有鄉民PO的地籍謄本 : https://www.ptt.cc/bbs/Gossiping/M.1642598409.A.10F.html : "假設"兩者是同一個人的身份證字號,那我們就已經得到了開頭字母,前三碼跟後四碼 : (先說好,以上都是引用跟假設) : 這讓我想到資工一個很基本的練習題,叫做身份證字號驗算 : (身分證最後一碼是檢查碼,公式是公開的) : 我們用python來練習吧 : 其實只找兩個數字的話是有數學解的,不需要用暴力法跑到O(n2) : 不過為了好理解python跟身份證字號公式,我們還是用暴力法來練習 : preId = "F230" : postId = "2551" : remainder = 10 - 1 : # F = 15 : # refer wiki for calculation rule : sumOfKnownNum = 1 * 1 + 5 * 9 + 2 * 8 + 3 * 7 + 0 * 6 + 2 * 3 + 5 * 2 + 5 * 1 : i = 1 : for _4thNum in range(10): : for _5thNum in range(10): : sum = sumOfKnownNum + _4thNum * 5 + _5thNum * 4 : if sum % 10 == remainder: : print(f"{i:2d}: {preId}{_4thNum}{_5thNum}{postId}, sum is {sum}" ) : i += 1 : 然後就可以得到8組可能的結果 : 1: F230102551, sum is 109 : 2: F230152551, sum is 129 : 3: F230302551, sum is 119 : 4: F230352551, sum is 139 : 5: F230502551, sum is 129 : 6: F230552551, sum is 149 : 7: F230702551, sum is 139 : 8: F230752551, sum is 159 : 以上,python暖身結束,大家有興趣來學寫程式了嗎? 岔個題,如果是使用python的話,可以使用python各種內置組件像combination_with_rep lacement來快速排列組合,然後再使用numpy直接進行矩陣加和跟餘數計算,最後做filte r即可。這樣速度可以快上很多喔! 公式解當然會快很多,但是推薦小朋友們可以善用python的library,小朋友學會了嗎? ☺ ☺ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.14.191 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1642654954.A.A04.html

01/20 13:02, 2年前 , 1F
我還以為青青又伸臉出來給人打
01/20 13:02, 1F

01/20 13:04, 2年前 , 2F
我不是要看這個,不過還是知識推
01/20 13:04, 2F

01/20 13:05, 2年前 , 3F
奇怪的知識增加了
01/20 13:05, 3F

01/20 13:06, 2年前 , 4F
好的
01/20 13:06, 4F

01/20 13:07, 2年前 , 5F
只有我看不懂嗎
01/20 13:07, 5F

01/20 13:08, 2年前 , 6F
寫程式的時間心算就算完了還在那pytho
01/20 13:08, 6F

01/20 13:12, 2年前 , 7F
優化CODE的時間比實際RUN的時間多...
01/20 13:12, 7F

01/20 13:13, 2年前 , 8F
講人話==
01/20 13:13, 8F

01/20 13:14, 2年前 , 9F
學到了
01/20 13:14, 9F

01/20 13:14, 2年前 , 10F
讚讚
01/20 13:14, 10F
文章代碼(AID): #1XwEpge4 (Gossiping)
討論串 (同標題文章)
文章代碼(AID): #1XwEpge4 (Gossiping)