Linux/Mac 上的六合彩大師

  1. 使用 AI 編寫 python 腳本

六合彩彩票

六合彩是香港的彩票。您可以在彩票上從 49 個號碼池中選擇 6 個號碼。有許多單行命令可用於從 1 到 49 隨機生成 6 個號碼。

python 2

python -c 'import random; print [ random.randint(1,49) for _ in xrange(6)]'

awk

awk -v min=1 -v max=49 'BEGIN{ srand(); for (i = 0; i < 6; i++)  print int(min+rand()*(max-min+1))}'

bash

for i in {1..6}; do echo $(( ( RANDOM % 49 ) + 1)); done

Mac 上的 jot macOS 10.13 High Sierra 不再提供 jot

jot -r -s ' ' 6 1 49 | tr ' ' '\n'

然而,您很快就會發現上述解決方案會生成重複的號碼。獲得不重複生成號碼的技巧是使用包含 49 個號碼的陣列進行隨機排序,

python 2

python -c 'import random; a = range(1, 49); random.shuffle(a); print a[:6:]'

Mac 上的 jot macOS 10.13 High Sierra 不再提供 jot

jot 49 1 49 | gsort --random-sort | head -n 6

使用 AI 編寫 python 腳本

使用 AI 生成 Python 腳本非常簡單。讓我們編寫一個提示並將其與我們在 2017 年編寫的內容進行比較。提示是:Write a Python script that pick six random unique numbers from 1 to 49, inclusive. Write it simple and testable.

import random

def get_random_numbers():
    return random.sample(range(1, 50), 6)

print(get_random_numbers())

結果很棒!我們也可以將 AI 加入單元測試。

import unittest
from your_script import get_random_numbers

class TestGetRandomNumbers(unittest.TestCase):
    def test_length(self):
        self.assertEqual(len(get_random_numbers()), 6)

    def test_values(self):
        numbers = get_random_numbers()
        self.assertTrue(all(1 <= x <= 49 for x in numbers))

    def test_uniqueness(self):
        numbers = get_random_numbers()
        self.assertTrue(len(set(numbers)) == len(numbers))

if __name__ == '__main__':
    unittest.main()

單元測試比許多開發者都好!

分享到