
最近看到有國外的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