ChatGPT寫Windows 95序號產生器

最近看到有國外的YouTuber (https://www.youtube.com/watch?v=2bTXbujbsVk ) 叫ChatGPT產生Windows 95序號的玩法,但是成功機率不高,老是算錯。

我也試著對ChatGPT(3.5)發出一樣的提示,結果也差不多,算對的機率不高。

Prompt:

請幫我依據以下格式計算出20碼字,
dddYY-OEM-zznnnnn-mmmmm
透過'-'可分成4組字碼
第1組數5碼,ddd為一年中的第1天到第366天,意即001~366;YY為西元1995年到2003年,意即95~03
第2組3碼,固定為英文字母OEM
第3組7碼,zz固定為"00",nnnnn為5個各別的數字,這各別的數字加總除以7的餘數為0,例如1+2+3+4+4除以7的餘數為0
第4組數5碼,mmmmm為任意5個數字
以上,請產出10組序號

為了嘗試一探究,我將產出改成Python程式碼

Prompt:

請幫我依據以下格式計算出20碼字,
dddYY-OEM-zznnnnn-mmmmm
透過'-'可分成4組字碼
第1組數5碼,ddd為一年中的第1天到第366天,意即001~366;YY為西元1995年到2003年,意即95~03
第2組3碼,固定為英文字母OEM
第3組7碼,zz固定為"00",nnnnn為5個各別的數字,這各別的數字加總除以7的餘數為0,例如1+2+3+4+4除以7的餘數為0
第4組數5碼,mmmmm為任意5個數字
以上,請產出對應的Python程式

發現程式碼看起來好像OK,但執行結果更慘。雖然執行不會報錯,但除了序號長度不正確外,有的字組還直接不見。

仔細查看Code才發現裡面有一些指令用錯的邏輯bugs.

以這次產生的Code為例,
第1組年份碼應為2碼,但因用了補0的zfill()指令,導致產出的為2~3碼;
第3組的5個數字直接不見,是因為計算加總的變數初始值為0,跟退出迴圈的判斷式相符,導致產出5個數字的迴圈完全沒執行。

經過人為的修正後,才終於產出正確的序號。

同樣的問題我問了基於ChatGPT 4的Bing(精確模式)

雖然答出來的程式碼一樣可以執行且已經沒有整串字不見的狀況,但是還是有第1組年分碼長度不正確的錯誤。看來至少人腦目前還是有發揮的餘地 XD。

留言

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.