Giới thiệu
Hầu như mọi người đều quen thuộc với Vấn đề nhân viên bán hàng du lịch (TSP). Nhiệm vụ là, đưa ra một danh sách các N
thành phố, tìm ra chu trình Hamilton tối thiểu để nói con đường ngắn nhất ghé thăm mỗi thành phố và quay lại vòng tròn bắt đầu. Đó không phải là những gì thách thức này là về. Thách thức này là triển khai giải pháp của Chuck Norris cho TSP:
Chuck Norris đã giải quyết vấn đề Nhân viên bán hàng du lịch
O(1)
kịp thời: chia nhân viên bán hàng thành N mảnh; đá từng mảnh đến một thành phố khác nhau
Thử thách
Để giải quyết TSP theo cách này, chúng tôi cần một Nhân viên bán hàng đủ bền, không né tránh những điều phù phiếm như mất tinh thần; một số thành phố để tham quan; một bộ sản phẩm để bán; một phương pháp cụ thể để phân chia; và một tính toán cho điểm.
Đặc điểm kỹ thuật
- Các thành phố
N
là số lượng trích dẫn Nhân viên bán hàng của chúng tôi sẽ truy cập
- Người bán hàng
- Chương trình chính hoặc chức năng
- Viết bằng ngôn ngữ
X
- Với độ dài mod
N
bằng0
- Các sản phẩm
- Tên đầy đủ của các thành phần trên Bảng tuần hoàn
- Điều này bao gồm tên mới được chấp nhận của các yếu tố
- Phân chia
- Cắt nhân viên bán hàng thành
N
các miếng liên tục có độ dài bằng nhau - Mỗi phần nên là một chức năng hoặc chương trình hợp lệ trong ngôn ngữ
X
- Cắt nhân viên bán hàng thành
- Đầu ra
- Khi được thực hiện, Nhân viên bán hàng sẽ xuất ra
Chuck Norris
và các mảnh được cắt sẽ tạo ra mỗi sản phẩm riêng biệt - Chỉ có thêm khoảng trắng ở cuối là chấp nhận được
- Khi được thực hiện, Nhân viên bán hàng sẽ xuất ra
- Chấm điểm
- Độ dài,
L
của Người bán hàng tính theo byte chia cho số lượng thành phốN
, bình phương. Score = L/(N*N)
- Điểm số nhỏ nhất sẽ thắng
- Vui lòng bao gồm 3 số liệu quan trọng khi đăng điểm thập phân của bạn
- Độ dài,
Ví dụ
- Nhân viên bán hàng này đến thăm 3 thành phố
N=3
và nó có chiều dài là 9L=9
. Do đó, điểm cho câu trả lời này sẽ làS = 9 / (3 * 3) = 9/9 = 1
.- Lưu ý rằng Nhân viên bán hàng và mỗi phần được cắt lát (trong đó có 3), tất cả phải là các chương trình hoặc chức năng hợp lệ trong cùng một ngôn ngữ.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
vàL=20
vì vậyS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
ElementData
được phép? (Tôi nghi ngờ nó sẽ tiết kiệm được nhiều, nhưng tôi không biết.)