Giảm phân số sai cách
Trong thử thách chơi gôn mã này, bạn phải tìm các phân số có thể được giảm sai cách nhưng vẫn kết thúc với cùng một số.
Lưu ý: giảm phân số sai cách ở đây có định nghĩa chính xác, xem chi tiết.
Thí dụ:
64/16 = 6 4/1 6 = 4/1 = 4
Tất nhiên bạn không thể tấn công cả 6es nhưng ở đây bạn vẫn kết thúc với giá trị chính xác. Trong thử thách này, bạn phải tìm những ví dụ như thế này.
Chi tiết
Bạn phải viết một hàm / chương trình chấp nhận một số nguyên dương n
làm đầu vào và đầu ra / trả về một danh sách / mảng các phân số có định dạng
numerator1,denominator1,numerator2,denominator2,...
Chương trình phải tìm ra từng phân số a/b
với a+b=n
và a,b>0
liệu nó có thể được giảm sai cách hay không . (Không quan trọng là liệu nó có thể được giảm theo cách thông thường hay có nhiều khả năng giảm hay không, chỉ cần có thể giảm theo cách sai theo ít nhất một cách.)
Định nghĩa sai cách: Một phân số có thể được giảm theo cách sai khi và chỉ khi cùng một chuỗi các chữ số liên tiếp xuất hiện trong a và b và nếu giá trị của phân số giữ nguyên nếu bạn loại bỏ chuỗi con.
Ví dụ: 1536/353 có thể được 'giảm' xuống 16/3 nhưng hai giá trị đó không bằng nhau nên bạn không thể giảm phân số này sai cách .
Lưu ý rằng định nghĩa giảm sai cách này cũng có thể bao gồm các phân số được giảm theo đúng cách: 110/10 = 11/1
nằm trong định nghĩa giảm sai cách mặc dù đó là một bước hợp lệ.
Chấm điểm
Số byte ít nhất sẽ thắng. Bạn có thể viết một hàm hoặc chương trình chấp nhận một số nguyên và trả về một mảng hoặc một chương trình sử dụng stdin / stdout hoặc bạn có thể xem xét n được lưu trong một biến và vào cuối chương trình, danh sách phải được lưu trong một biến khác.
Các trường hợp thử nghiệm
Vui lòng bao gồm các mẫu thử sau (Hãy cho tôi biết những cái nào tôi nên thêm, tôi không biết có bao nhiêu phân số có / bao nhiêu ví dụ để mong đợi)
n=80 (64/16 should be in this list)
n=147 (98/49 should be in this list)
n=500 (294/196 should be in this list) WRONG since 294+196 != 500 Thanks Falko
1010/10 = 101/1 && 1010/10 /= 110/1
n=147
) không chính xác : 49/89 != 4/8
.