Đầu ra đầu vào:
Input : Một thống nhất ngẫu nhiên, dài vô hạn, chuỗi '0 và' 1 của, lấy từ stdin. Chuỗi được coi là thực sự ngẫu nhiên, không giả ngẫu nhiên. Điều thống nhất là mỗi nhân vật đều có khả năng là '0' hoặc '1' như nhau.
Cẩn thận! Đầu vào dài vô hạn, vì vậy bạn không thể lưu trữ tất cả trong bộ nhớ bằng cách sử dụng hàm như raw_input () trong python. Nếu tôi không nhầm, golfscript sẽ thất bại với đầu vào vô hạn, vì nó đẩy toàn bộ đầu vào lên ngăn xếp trước khi chạy.
Đầu ra : Một sàn chuẩn xáo trộn ngẫu nhiên đồng đều, không có joker. Đó là thống nhất trong đó tất cả các thứ tự đều có khả năng như nhau.
Mỗi thẻ trong đầu ra là thứ hạng, A, 2-9, T, J, Q hoặc K được ghép nối với nó phù hợp, c, d, h hoặc s. Ví dụ, 10 spades làTs
Các thẻ của bộ bài nên được phân cách bằng khoảng trắng.
Bạn không được sử dụng các thư viện hoặc hàm ngẫu nhiên tích hợp vì chúng không thực sự ngẫu nhiên, chỉ giả ngẫu nhiên.
Ví dụ đầu vào
Bạn có thể sử dụng tập lệnh python sau đây để nhập dữ liệu vào chương trình của mình:
import sys, random
try:
while True:
sys.stdout.write(str(random.randint(0,1)))
except IOError:
pass
Nếu bạn lưu tập lệnh dưới dạng rand.py, hãy kiểm tra chương trình của bạn với python rand.py | your_program
Trong python 3, nó chạy như mong đợi, nhưng trong python 2.7 tôi nhận được thông báo lỗi sau đầu ra của chương trình, nhưng chỉ sau khi mọi thứ đã xong, vì vậy hãy bỏ qua thông báo lỗi.
Ví dụ đầu ra:
Đây là cách bộ bài nên được in nếu nó được xáo trộn thành một thứ tự được sắp xếp:
Ac 2c 3c 4c 5c 6c 7c 8c 9c Tc Jc Qc Kc Ad 2d 3d 4d 5d 6d 7d 8d 9d Td Jd Qd Kd Ah 2h 3h 4h 5h 6h 7h 8h 9h Th Jh Qh Kh As 2s 3s 4s 5s 6s 7s 8s 9s Ts Js Qs Ks
Ghi điểm:
Đây là một mã golf. Mã ngắn nhất sẽ thắng.
Chương trình ví dụ:
Đây là một giải pháp python 2.7, không chơi gôn.
import sys
def next():
return int(sys.stdin.read(1))==1
def roll(n):
if n==1:
return 0
if n%2==0:
r=roll(n/2)
if next():
r+=n/2
return r
else:
r=n
while(r==n):
r=roll(n+1)
return r
deck = [rank+suit for suit in 'cdhs' for rank in 'A23456789TJQK']
while len(deck)>0:
print deck.pop(roll(len(deck))),