Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 2 trên tổng số 4 Đầu tiênĐầu tiên 1234 Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 31 kết quả

Đề tài: Bài toán 13 chiếc nhẫn vàng

  1. #11
    Ngày gia nhập
    03 2015
    Bài viết
    16

    Mặc định Bài toán 13 chiếc nhẫn vàng

    13 cái chỉ với 3 lần cân lại không biết vật giả nặng hay nhẹ hơn vật thật mà vẫn đàm bảo 100% tìm được sao
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #12
    Ngày gia nhập
    01 2013
    Bài viết
    1,479

    1 phương án cân (dễ nhớ): https://www.brainbashers.com/showpuzzles.asp?puzzle=ZLKY
    Trích dẫn Nguyên bản được gửi bởi QuangTrung93 Xem bài viết
    13 cái chỉ với 3 lần cân lại không biết vật giả nặng hay nhẹ hơn vật thật mà vẫn đàm bảo 100% tìm được sao
    Bởi vậy đọc post #3 (lí thuyết) để biết thêm chi tiết. Và 13 là tối đa rồi

    Theo đó thì BBB là kí hiệu cho chiếc nhẫn thứ 13, hay 3 lần cân đều thăng bằng.
    Đã được chỉnh sửa lần cuối bởi prog10 : 05-07-2016 lúc 06:35 PM.

  3. #13
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Trích dẫn Nguyên bản được gửi bởi QuangTrung93 Xem bài viết
    13 cái chỉ với 3 lần cân lại không biết vật giả nặng hay nhẹ hơn vật thật mà vẫn đàm bảo 100% tìm được sao
    Bài toán đặt ra thế
    //==========

    Không khó khăn gì để viết hàm kiểm tra trong NN có datatype set of (pascal / delphi)

    Pascal Code:
    1. type
    2.     Wh = 0..12;
    3.     set13 = set of Wh;
    4. var set13
    5.     R = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    6.     //
    7.     R1_L = [4, 5, 6, 7], R1_R = [8, 9, 10, 11],
    8.     R2_L = [6, 7, 8, 9], R2_R = [1, 2, 11, 12],
    9.     R3_L = [2, 4, 6, 8], R3_R = [1, 3, 5, 7],
    10.     //
    11.     R1 = R1_L + R1_R,
    12.     R2 = R2_L + R2_R,
    13.     R3 = R3_L + R3_R;
    14.    
    15. int comp(set13 A, set13 B){
    16.     if(sum(A) == sum(B)) return 0;
    17.     if(sum(A) > sum(B)) return 1;
    18.     return 2;
    19. }  
    20. set13 CoinId(int n){ //1..27
    21.     set13 A, B, C;
    22.     //
    23.     if(n == 1){ //BBB
    24.         A = R - R1;
    25.         B = A - R2;
    26.         C = B - R3;
    27.         return C;
    28.     }
    29.     else if(n == 2){ //LBB
    30.         A = R1;
    31.         B = A - R2;
    32.         C = B - R3;
    33.         return C;
    34.     }
    35.     else if(n = 3){ //RBB
    36.         A = R1;
    37.         B = A - R2;
    38.         C = B - R3;
    39.         return C;
    40.     }
    41.     ...
    42. }
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  4. #14
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Đây là bài toán khó, ít người làm được, làm trong thời gian đủ lâu mới có lời giải
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  5. #15
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Bài toán trên, bớt đi 1, thì độ khó cũng không giảm đi.
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  6. #16
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Mặc định Bài toán 13 chiếc nhẫn vàng

    Bắt đầu trả giá !

    Bài toán trên, bớt đi 2, thì độ khó cũng không giảm đi.
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  7. #17
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Bớt thêm 1 nữa xem ?
    Bài toán này không lý khó dữ vậy ta ?
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  8. #18
    Ngày gia nhập
    07 2011
    Bài viết
    467

    <= 8 xu là dễ.
    9, 10 hơi khó nhưng có kết quả rất đẹp.
    11 khó, phải đi từ 12 xuống.
    12, 13 khó tìm ra cách đẹp.

    sở dĩ 8 xu là dễ vì lần cân thứ nhất có thể chia làm 2-2-4, cân 2-2, bằng nhau thì xu giả ở 4, ko bằng thì xu giả ở 2-2. Như vậy từ 1/8 xu giả còn 1/4 xu giả. Tiếp tục cân lần 2 chia làm 1-1-2, từ 1/4 xu giả còn 1/2 xu giả. Lần cân thứ 3 cân xu thật (lấy từ 1 trong 6 xu thật ở 2 lần cân trước) với 1 trong 2 xu nghi ngờ. Nếu bằng thì xu giả là xu kia, còn ko bằng thì xu đem cân là xu giả.

    9 xu thì bắt chước giải như 12 xu, nhưng chia 3-3-3 thay vì 4-4-4, có kết quả đẹp:
    lần 1: 1-2-3 vs 4-5-6
    lần 2: 1-2-3 vs 7-8-9
    lần 3: 1-4-7 vs 3-6-9
    rồi dễ suy luận ra kết quả thôi. Ví dụ 2 lần cân đầu là LL hoặc RR, thì chỉ có thể là 1 trong 3 xu 1-2-3, lần cân thứ 3 tùy thuộc kết quả L,B,R mà biết là xu 1, 2, hay 3.

    10 xu thì tương tự 13 xu: thêm trường hợp BBB

    11 xu thì hơi khó, phải lấy cách xếp từ 12 xu ra, lấy bớt ra 1 xu:
    cách cân 12 xu:
    1-2-3-4 ; 6-7-8-9
    3-4-6-7 ; 9-10-11-12
    2-5-8-11 ; 3-6-9-12
    loại xu 12 ra, thế vào xu 1.
    1-2-3-4 ; 6-7-8-9
    3-4-6-7 ; 9-10-11-1
    2-5-8-11 ; 3-6-9-1
    là được. Sở dĩ làm được như vậy vì cách 12 xu là loại trường hợp LRR/RLL ra, nên 1 từ LBB/RBB chuyển thành LRR/RLL ko bị đụng

  9. #19
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Đúng trước đẹp sau.
    Tôi giải nó lâu rồi, tiếc chưa thấy người khác làm đúng hoàn chỉnh
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  10. #20
    Ngày gia nhập
    07 2016
    Nơi ở
    Hà Nội
    Bài viết
    218

    Trích dẫn Nguyên bản được gửi bởi CoViet-Plus005 Xem bài viết
    Có 13 cái nhẫn vàng - màu sắc, kích thước, hình dạng giống nhau - gồm 12 cái thật và 1 cái mẫu (khối lượng khác, nhưng không biết nặng hay nhẹ hơn)

    Dùng cân (loại đòn bẩy - cân tiểu ly) cân 3 lần để tìm cái nhẫn mẫu.

    Đính kèm 48183

    Viết thành chương trình GUI càng tốt
    Visual C# Code:
    1. Bài toán 13 nhẫn vàng
    2. Đặt
    3. A = {1,2,3,4}
    4. B = {5,6,7,8}
    5. C = {9,10,11,1}
    6. D = {3,4,5,6}
    7. E = {12,13}
    8.  
    9. Tiến Hành:
    10. TH1. A = B, C = D -> mẫu là E
    11.     + 1 = 12 -> 13 là mẫu
    12.     + 1> 12 ->12 là mẫu và nhẹ hơn
    13.     + 1< 12  ->12 là mẫuvà  nặng hơn
    14. TH2. A= B, C > D  ->mẫunằm tỏng 9,10,11 và nặng hơn
    15.     + 9 = 10  ->11 là mẫu
    16.     + 9> 10  ->9 là mẫu
    17.     + 9 < 10 ->10 là mẫu
    18. TH3. A = B và C < D -- > mẫu nằm trong 9,10,11 và nhẹ hơn (TT TH2)
    19.     9 = 10,  ->11 mẫu
    20.     9 > 10  ->10 mẫu
    21.     9 < 10  ->9 mẫu
    22. TH4. A > B và C = D  ->mẫunằm trong 2,7,8
    23.     7 =8  ->mẫu là 2 và nặng hơn
    24.     7 > 8  ->mẫu là 8 và nhẹ do A > B
    25.     7 < 8 ->mẫu là 7 và nhẹ do A > B
    26. TH5. A < B và C = D  ->mẫu thuộc 2,7,8
    27.     (Tương tự 4)
    28. TH6. A > B, C> D ->mẫu nằm trong 1,5,6
    29.     5=6  ->1 là mẫu và nặng hơn
    30.     5 > 6 ->6 và nhẹ ( do C >D)
    31.     5<6 ->mẫu là 5 và nhẹ ( C> D)
    32.  
    33. TH7.  A> B, C< D ( 1,3,4 tương tự)
    34. TH8. A <B và C< D ( 1,5,6) tương tự
    35. TH9. A < B và C > D  Tương tự
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi CodeThue : 30-07-2016 lúc 11:08 PM.
    NHẬN CODE THUÊ ĐỒ ÁN - BÀI TẬP LỚN
    TẤT CẢ CÁC NGÔN NGỮ LẬP TRÌNH. HOÀN THÀNH NHANH CHÓNG, HIỆU QUẢ
    Số điện thoại: 01629732025 Email: codethuexyz@gmail.com facebook https://www.facebook.com/codethuedoancntt

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn