Toán mà không phải toán thì làm sao giải?

Mỗi người đếm độc lập, với 2 biến được lưu với từng người:

  • state: trạng thái công tắc X (bật (1) / tắt (0))
  • count: số người đã đếm được.

Với một người bất kì, có 3 trường hợp xảy ra:

  • Chưa từng vào phòng, count = 0.
  • Vào phòng lần đầu tiên, bật/tắt công tắc X, và ghi nhận trạng thái sau khi bật tắt
    • state = trạng thái công tắc X (sau khi bật/tắt).
    • count = 1
  • Từ lần vào phòng thứ hai về sau:
    • Trường hợp count = 23: bật/tắt công tắc Y và coi như đã đếm 23 người vào phòng. Kết phút việc đếm.
    • Trường hợp count < 23:
      • Nếu state và trạng thái công tắc X khác nhau, bật/tắt công tắc X.
        • state giữ nguyên
        • count = count + 1
      • Nếu state và trạng thái công tắc X giống nhau, bật/tắt công tắc Y.
        • state giữ nguyên.
        • count giữ nguyên.
6 Likes

vậy chắc cũng được mà nguy cơ đếm thiếu nhiều hơn =]

à mà 1 người đã “điểm danh” rồi lại còn bật/tắc công tắt X vậy làm sao người khác biết ko phải là người cũ :V cách này chắc ko ổn :V

ví dụ 2 người:
1 bật X, lưu đã bật
2 tắt X, lưu đã tắt
1 vào thấy đã tắt, khác, count1++, bật X, lưu đã bật
2 vào thấy đã bật, khác, count2++, tắt X, lưu đã tắt

như vậy 1 đếm tới 23 mà trong khi chỉ có 2 người vào phòng số 0 :V :V :V

3 Likes

Vậy trật hả, chế đại thôi :v

2 Likes

1 người đếm thôi, như atomic/mutex gì trong multithread ấy =]

lời giải phải là ko bao giờ sai, lỡ sai thì chết cả lũ =]

4 Likes

Nhưng lỡ người bị hỏi không phải là người đếm, cũng không biết người đếm đã đếm đủ chưa, thì sao nó cũng thể “hùng hồn” tuyên bố “TẤT CẢ 23 NGƯỜI ĐÃ VÀO”. Lỡ trả lời sai là đứa bị hỏi bị ăn bép hội đồng luôn. :penguin:

Do đó mình mới hướng theo cách mỗi người đếm cho chắc ăn.

2 Likes

Noob có nói cái này r mà a. :slight_smile: Là tự tuyên bố, ông nào thấy chắc chắn thì ổng tuyên bổ cả lũ đã vô phòng 0 r, chứ hem có ai hỏi. :v

3 Likes

Vậy vote sửa đề.
Bất cứ sử dụng “universal qualifier”, tự tuyên bố là “existential qualifier”.

Có thể như vầy:

Tại bất cứ lúc nào, luôn có 1 bệnh nhân có thể tự tuyên bố là tất cả 23 bệnh nhân đều đã vào phòng số 0,…

3 Likes

Giả sử bạn là một trong vài người được xem là thông minh (hay đúng hơn là được trong số 23 người ủng hộ cho việc vạch ra giải pháp) thì bạn sẽ bàn với đồng đội như thế nào trong việc xử lý kia? Nếu là Thin, có lẽ đành phải thành thật nói với nhóm rằng: tui e rằng chúng ta sẽ bị nhốt mãi mãi :D. Lý do đơn giản: nếu (luật chơi) trong quá trình vào phòng đó mà 23 người không có thông tin/ không được phản hồi lẫn nhau ngoài việc vào ngắm hai cái công tắc vô hồn, chẳng có manh mối gì ngoài… niềm tin để đoán biết đồng đội đã để lại tín hiệu gì cho mình để biết đã đủ số lượng ghé phòng hay chưa.

Có khi nào 2 cái công tắc kia tương tự như hình dưới:

2 Likes

Mỗi người vào phòng cởi áo ra, quẳng ở đó, rồi bật tắt đại cái công tắc nào đó. Đủ 23 cái áo thì chốt :penguin:

4 Likes

Trong khi các bác đang giải toán thì họ được thả hết rồi nhé. Còn sao thì mình cũng không biết.

2 Likes

Sau 3 ngày đi vacation và quay lại, mình khá vui khi mọi người hào hứng tham gia. Nhưng có lẽ một số bạn đọc chưa kỹ đề, mình xin nhấn mạnh lại 1 lần nữa vài yếu tố sau:
1/ Ai vào phòng số 0 cũng BẮT BUỘC phải bật công tắc, nên sẽ ko có chuyện vào thấy status đang 00 thì vẫn để yên được nhé, buộc phải đổi.
2/ Tất cả mọi người chỉ được họp DUY NHẤT 1 LẦN trước khi quá trình đưa người vào phòng số 0 bắt đầu.
3/ KHÔNG CÓ MẸO tất cả đều là LOGIC.

3 Likes

Mỗi lần nhấn công tắc thì count lên 1.
Đủ 23 thì thả. Quá đơn giản còn gì nữa ?
Đừng focus vào cái mã hoá làm gì. Vì bật tắt công tắc nào cũng đều phát hiện ra cả.

2 Likes

Biến count ấy lưu thế nào nhỉ? và làm sao share biến ấy giữa 23 người?

1 Like

chạy thử thấy nếu mỗi ngày chọn ngẫu nhiên 1 trong 23 người vào phòng số 0 thì mất trung bình 718 ngày mới chắc chắn thoát được. Cách ly gì những 2 năm đề sai rồi :lying_face:

3 Likes

À mà đọc lại khó phết nhỉ ::))

2 Likes

Chọn người đếm A. Quy ước sau khi A ra khỏi phòng là X tắt. Đếm = 1.
Người B khác A vào bật X lên <=> (vào lần đầu) và (X đã tắt); nếu không, thay đổi Y. Như vậy X chỉ bật khi danh sách người đã vào có thêm 1 người mới.
Khi đó xét lúc A vào, nếu X bật => tắt đi và tăng đếm lên 1. Đến khi nào đếm = 23 => done.

2 Likes

lỡ B vào trước A và X tắt thì sao =] B bật, rồi A vào tắt nhưng ko tắt biến đếm, vậy là luôn luôn đếm thiếu 1 người.

gần đúng rồi đó :V Chỉ còn vụ làm sao B biết X tắt là do A tắt (chứ ko phải do công tắc ban đầu ở trạng thái tắt) mà thôi :V

3 Likes

Tất cả khi meeting sẽ ngửi màu nhau để ghi nhớ 23 lọai mùi, nên khi vào phòng mùi lưu lại là vô hình và mình ko tác động gì cả nên vẫn hợp lệ.
Don’t make your like more damn.

Vấn đề là mùi có lưu lại không đã, nếu ai cũng hôi như cú thì quá dễ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?