Chào buổi chiều
Thử thách của chúng tôi cho ngày hôm nay được lấy cảm hứng từ truyện tranh XKCD 356 và 370 . Chúng ta sẽ viết một chương trình để tính toán điện trở của một nhóm điện trở. Một sự cảnh báo trước rằng điều này gần như đủ khó khăn để đảm bảo là một thách thức mã, tuy nhiên tôi nghĩ rằng có một nghệ thuật nhất định để viết các chương trình phức tạp hơn một chút trong định dạng golf. Số lượng nhân vật thấp nhất sẽ thắng.
Tính toán điện trở dựa vào hai công thức sau:
- Nếu các điện trở mắc nối tiếp, điện trở là tổng của điện trở của mỗi điện trở
- Nếu các điện trở mắc song song thì điện trở là nghịch đảo của tổng nghịch đảo của điện trở của mỗi điện trở
Ví dụ:
Thử thách của bạn là, trong số lượng ký tự ít nhất có thể, tính toán điện trở của một nhóm có tới 64 điện trở. Tôi xin lỗi vì sự phức tạp, đặc biệt là các quy tắc đầu vào. Tôi đã cố gắng định nghĩa chúng theo cách mà mọi ngôn ngữ sẽ có thể sử dụng được.
Mỗi điện trở sẽ được kết nối với 2 hoặc nhiều điện trở khác.
Đầu vào được đảm bảo là hợp lệ, chỉ có một mục nhập và một điểm thoát, sẽ kết nối
Mạng sẽ song song nối tiếp để ngăn không yêu cầu nhiều toán hơn sau đó trình bày
Đầu vào sẽ thông qua tập tin, đối số hoặc stdin, tùy thuộc vào những gì phù hợp với ngôn ngữ của bạn.
Đầu vào sẽ bao gồm một loạt các câu lệnh được phân tách theo dòng mới hoặc chuyển tiếp được cắt bao gồm một số nguyên điện trở của điện trở và khoảng cách giữa ID của các điện trở mà một bên của điện trở được kết nối với.
ID của điện trở thứ nhất sẽ là 1, tăng thêm một cho mỗi điện trở kế tiếp
Bắt đầu sẽ luôn có ID là 0
Điện trở cuối cùng sẽ luôn có điện trở 0 ohms và chỉ có các kết nối được xác định trong dòng của nó
Ví dụ:
Có thể được đại diện như
3 0
6 1
1 0
5 0
0 2 3 4
- Đầu ra có thể là thiết bị xuất chuẩn hoặc tập tin. Nó có thể được trình bày theo một trong những cách sau:
- Một số có tối thiểu 2 chữ số thập phân, theo sau là một dòng mới
- Một phân số bao gồm một số nguyên (tử số), dấu gạch chéo về phía trước và một số nguyên khác (mẫu số), theo sau là một dòng mới. Phân số không cần phải ở dạng thấp nhất - 4/4 hoặc 10/8, chẳng hạn, có thể chấp nhận được. Phân số phải chính xác trong vòng 1/100. Không có phần thưởng cho việc hoàn toàn chính xác - điều này được cung cấp là một cái nạng để cho phép các ngôn ngữ mà không có hoạt động điểm cố định hoặc dấu phẩy động để cạnh tranh.
Tôi hy vọng rằng bao gồm tất cả các điểm. Chúc may mắn!
1 2/1 0/0 1
hợp lệ không?
/
không phải là dấu gạch chéo ngược. Ý của bạn là `\` hay một dấu gạch chéo về phía trước?