Sự xuống cấp
Tạo một chương trình tạo ra một mảng có độ dài ngẫu nhiên với các số ngẫu nhiên, sau đó áp dụng một loạt các quy tắc làm thay đổi mảng. Sau khi các quy tắc đã được áp dụng, in tổng của mảng trừ khi có quy định khác
Thiết lập mảng
Mảng phải có độ dài ngẫu nhiên trong khoảng từ 5 đến 10 , bao gồm các số nguyên ngẫu nhiên trong khoảng từ 1 đến 20 . Mỗi độ dài mảng phải có xác suất xảy ra bằng nhau và mỗi số nguyên phải có xác suất được chọn bằng nhau cho mỗi phần tử.
7 quy tắc
Các quy tắc sẽ hoạt động như thể chúng được áp dụng theo trình tự (ví dụ: quy tắc 1 hành động trước quy tắc 2) và chỉ được áp dụng một lần. Để chứng minh ứng dụng quy tắc, mảng phải được in ra bàn điều khiển sau mỗi ứng dụng quy tắc và một lần trước khi áp dụng bất kỳ quy tắc nào.
- Nếu mảng chứa 7, trừ 1 từ mọi phần tử
- Nếu quy tắc 1 được áp dụng và mảng hiện chứa 0, hãy thêm 1 vào mỗi phần tử
- Nếu mảng chứa 13, loại trừ 13 và tất cả các phần tử theo sau, khỏi mảng
- Nếu mảng chứa 2, loại trừ tất cả các số lẻ
- Nếu mảng chứa 20 và phần tử thứ ba là chẵn, trả về 20 là tổng sau đó chấm dứt. Nếu có 20 và phần tử thứ ba là số lẻ, trả về 20 lần chiều dài của mảng là tổng sau đó chấm dứt.
- Nếu tổng lớn hơn 50, hãy loại bỏ phần tử cuối cùng nhiều lần cho đến khi nó nhỏ hơn hoặc bằng 50
- Nếu mảng chứa 16, hãy in tổng theo cả thập phân và thập lục phân.
Thí dụ
Đây là một mảng ban đầu,
[20, 2, 5, 7, 14, 8]
Quy tắc 1 có thể được áp dụng:
[19, 1, 4, 6, 13, 7]
Quy tắc 3 được áp dụng tiếp theo:
[19, 1, 4, 6]
Không có quy tắc nào khác là cần thiết, vì vậy chương trình trả về 30 dưới dạng tổng.
Ghi chú
- Tôi không phải là người chơi mã có kinh nghiệm, mặc dù tôi có thể nói rằng hồ sơ cá nhân của tôi là trong Python 3 với 369 byte .
- Các quy tắc không thực sự phải được áp dụng theo thứ tự, nhưng phải hành động như thể chúng đã làm.
[3 3 3 3 4 3]
và [4 4 3 4 4]
, mỗi mảng có xác suất 50%, phù hợp với những gì được viết trong "thiết lập mảng". Vì vậy, tôi chỉ có thể đầu ra 19
mỗi lần? (Tất nhiên, điều tôi thực sự nghĩ là định nghĩa về "ngẫu nhiên" cần phải được làm rõ.)
If the array contains a 20, and the third element is even/odd
, nếu mảng có ít hơn 3 phần tử ở bước này thì sao?