Trong Thời hiện đại mới , khi Charlie Chaplin bắt gặp một chiếc máy tính, anh ta được thuê trong Xưởng phân loại, làm người xác nhận để xác định xem các công nhân có sắp xếp chính xác các mặt hàng hay không. Các mục trong câu hỏi là các gói bi. Các gói có số lượng viên bi lẻ được xếp chồng lên nhau trong Giỏ màu đỏ và Gói có số lượng viên bi được xếp chồng lên nhau trong Giỏ màu xanh.
Charlie Chaplin là nghĩa vụ phải đấm chương trình đó sẽ xác nhận nếu có bất kỳ sự bất thường trong quá trình sắp xếp. Mack Swain, ông chủ trực tiếp của mình, chia sẻ một thuật toán mà anh ta cần viết mã.
Thuật toán
L = List of Marble packets that's already sorted
L_ODD = List of packets with Odd Number of Marbles
L_EVEN = List of packets with Even Number of Marbles
Check_Digit = √(ΣL_ODD² + ΣL_EVEN²)
Công việc của anh ta là xác định Check_Digit và khớp với giá trị mà ông chủ của anh ta tính toán.
Charlie Chaplin trong giờ ăn trưa, đã có thể lẻn vào ngăn kéo của Mack Swain và xác định, rằng ngăn kéo của anh ta có một lá bài với những cú đấm vào 46 32 cột đầu tiên (có nghĩa là Mack có thể viết một chương trình chỉ với 46 32 ký tự).
Charlie Chaplin bây giờ sẽ cần sự giúp đỡ của tất cả các ninja mã để viết một chương trình với càng ít dòng càng tốt. Anh ta cũng công bố tiền thưởng 50 điểm, nếu ai đó có thể đưa ra một chương trình ngắn hơn Boss của anh ta.
Tóm lược
Đưa ra một danh sách / mảng / vectơ của các số dương (lẻ và chẵn), bạn cần viết một hàm, nó sẽ chấp nhận array(int [])/vector<int>/list
và tính gốc của tổng bình phương của tổng các số lẻ và chẵn trong danh sách.
Kích thước của chương trình là kích thước của phần thân của hàm, tức là không bao gồm kích thước của chữ ký hàm.
Thí dụ
List = [20, 9, 4, 5, 5, 5, 15, 17, 20, 9]
Odd = [9, 5, 5, 5, 15, 17, 9]
Even = [20, 4, 20]
Check_Digit = √(ΣOdd² + ΣEven²) = 78.49203781276162
Lưu ý , đầu ra thực tế có thể thay đổi dựa trên độ chính xác của dấu phẩy động của triển khai.
Ghi bàn
Điểm được tính như Điểm được tính như Σ(Characters in your Program) - 46
. Σ(Characters in your Program) - 32
. Ngoài việc nâng cấp thường xuyên từ cộng đồng, điểm âm thấp nhất sẽ nhận được thêm 50 điểm thưởng.
Biên tập
- Phần bù được sử dụng để tính Điểm đã được thay đổi từ 46 thành 32. Lưu ý, điều này sẽ không ảnh hưởng đến tính đủ điều kiện của ban lãnh đạo / tiền thưởng hoặc làm mất hiệu lực bất kỳ giải pháp nào.
Bản án
Sau cuộc đấu tay đôi khủng khiếp giữa các Ninjas, ông Chaplin đã nhận được một số câu trả lời tuyệt vời. Thật không may, một số câu trả lời đã cố gắng tận dụng lợi thế của quy tắc và không hữu ích lắm. Anh ta thực sự muốn có một cuộc đấu tay đôi công bằng và câu trả lời trong đó logic được mã hóa trong chữ ký hàm cuối cùng có nghĩa là chữ ký hàm là một phần không thể thiếu của giải pháp. Cuối cùng, Ninja FireFly là người chiến thắng rõ ràng và trao cho anh phần thưởng mà anh xứng đáng nhận được. Bảng xếp hạng (cập nhật mỗi ngày)
╒══════╤═════════════════╤══════════════╤═════════╤════════╤═══════╕
├ Rank │ Ninja │ Dialect │ Punches │ Scores │ Votes ┤
╞══════╪═════════════════╪══════════════╪═════════╪════════╪═══════╡
│ 0 │ FireFly │ J │ 17 │ -15 │ 6 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 1 │ tmartin │ Kona │ 22 │ -10 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 2 │ Sven Hohenstein │ R │ 24 │ -8 │ 7 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 3 │ Ben Reich │ GolfScript │ 30 │ -2 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 4 │ mollmerx │ k │ 31 │ -1 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 5 │ David Carraher │ Mathematica │ 31 │ -1 │ 3 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 6 │ tmartin │ Q │ 34 │ 2 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 7 │ daniero │ dc │ 35 │ 3 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 8 │ psion5mx │ Python │ 38 │ 6 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 9 │ O-I │ Ruby │ 39 │ 7 │ 5 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 10 │ gggg │ Julia │ 40 │ 8 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 11 │ FakeRainBrigand │ LiveScript │ 50 │ 18 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 12 │ Sylwester │ Perl5 │ 50 │ 18 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 13 │ daniero │ Ruby │ 55 │ 23 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 14 │ vasuakeel │ Coffeescript │ 57 │ 25 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 15 │ dirkk │ XQuery │ 63 │ 31 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 16 │ crazedgremlin │ Haskell │ 64 │ 32 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 17 │ Uri Agassi │ Ruby │ 66 │ 34 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 18 │ Sumedh │ JAVA │ 67 │ 35 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 19 │ Danny │ Javascript │ 67 │ 35 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 20 │ deroby │ c# │ 69 │ 37 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 21 │ Adam Speight │ VB │ 70 │ 38 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 22 │ Andrakis │ Erlang │ 82 │ 50 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 23 │ Sp0T │ PHP │ 85 │ 53 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 24 │ brendanb │ Clojure │ 87 │ 55 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 25 │ Merin Nakarmi │ C# │ 174 │ 142 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 26 │ Boopathi │ JAVA │ 517 │ 485 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 27 │ Noyo │ ES6 │ ? │ ? │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 28 │ shiona │ Haskell │ ? │ ? │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 29 │ Vivek │ int │ ? │ ? │ 0 │
└──────┴─────────────────┴──────────────┴─────────┴────────┴───────┘