用APL產生六合彩組合
姑且用生成六合彩投注號碼做第一個例子,感覺應該比較有趣和生活化。
説穿了就是要從1至49“隨機”挑選6個數字,實在簡單到不行。這裡使用NARS2000直譯器,安裝過程就省略了,打開後,輸入 6?49 到唯一一個看似Notepad的視窗中:
之後按 Enter,結果將會在下一行顯示:
實再言簡意賅到不得了。 6?49 的意思就是從1至49中抽取6個不同的元素。在此, ? 係一個函數,其左右兩邊各自有數字引數 6 和 49 。由於 ? 使用左右引數,這稱之爲 ? 函數的雙價用法。所返回的是有6個元素的陣列。
既然有雙價就勢必有單價吧?不錯,單價使用下,? 返回1至49内的一個數字純量:
關於純量與陣列的區別與用法,往後會再探討。
另外,將左引數換成49的話,所得就是1至49的隨機排列 (permutation) 了:
試想想,以上功能如果用 Java / C / Python 編寫的話要如何處理?
説穿了就是要從1至49“隨機”挑選6個數字,實在簡單到不行。這裡使用NARS2000直譯器,安裝過程就省略了,打開後,輸入 6?49 到唯一一個看似Notepad的視窗中:
之後按 Enter,結果將會在下一行顯示:
實再言簡意賅到不得了。 6?49 的意思就是從1至49中抽取6個不同的元素。在此, ? 係一個函數,其左右兩邊各自有數字引數 6 和 49 。由於 ? 使用左右引數,這稱之爲 ? 函數的雙價用法。所返回的是有6個元素的陣列。
既然有雙價就勢必有單價吧?不錯,單價使用下,? 返回1至49内的一個數字純量:
關於純量與陣列的區別與用法,往後會再探討。
另外,將左引數換成49的話,所得就是1至49的隨機排列 (permutation) 了:
試想想,以上功能如果用 Java / C / Python 編寫的話要如何處理?