Đố vui: bài toán tính ngày tháng từ một con số tổng 12D + 31M (4 người xem)

  • Thread starter Thread starter OverAC
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

OverAC

Đỗ Nguyên Bình
Thành viên BQT
Administrator
Tham gia
30/5/06
Bài viết
2,695
Được thích
15,103
Chào mọi người,
Có người đố mình câu đố thế này nếu được cho 1 con số là kết quả của phép tính 12D + 31M (trong đó D là ngày, M là tháng) thì làm sao biết được D = bao nhiêu và M = bao nhiêu.
Nhờ mọi người cùng giải đáp giúp.
Cảm ơn
P/S: Bình có 1 kiểu công thức đoán được nhưng không chứng minh bằng toán được.
 
Bài này chắc giống với bài về phương trình vô định:

Trăm trâu trăm cỏ:
Trâu đứng ăn 5 (bó)
Trâu nằm ăn ba (bó)
Trâu già lợm khọm 3 con 1 bó!
 
Chào mọi người,
Có người đố mình câu đố thế này nếu được cho 1 con số là kết quả của phép tính 12D + 31M (trong đó D là ngày, M là tháng) thì làm sao biết được D = bao nhiêu và M = bao nhiêu.
Nhờ mọi người cùng giải đáp giúp.
Cảm ơn
P/S: Bình có 1 kiểu công thức đoán được nhưng không chứng minh bằng toán được.
Có đáp án rồi, nhưng hơi dài, công thức sử dụng 4 hàm. Hahaha ... Chờ các cách giải khác.

...

Rút gọn còn 2 hàm, Hahaha ...
 
Lần chỉnh sửa cuối:
Có đáp án rồi, nhưng hơi dài, công thức sử dụng 4 hàm. Hahaha ... Chờ các cách giải khác.
Rất muốn được xem công thức của bạn. dài ngắn đâu quan trọng. Quan trọng là logic để tạo ra được công thức.
Thân
OverAC
 
À mà mình thắc mắc: 1 tháng có bao nhiêu ngày là chuẩn: 30 hay 30.25 ngày?
 
Gọi số đã cho là A.
=> A - M = 3(4D + 10M)
=> A - M chia hết cho 3 => A và M có cùng số dư khi chia cho 3.
Gọi A = 3k + b => M = 3n + b.
Biết b thì xét 4 trường hợp của M:
- b = 0 => n = 1, 2, 3, 4
- b = 1, 2 => n = 0, 1, 2, 3

Mặt khác 3(k - n) = A - M = 3(4D + 10M) => k - n = 4D + 10M => k và n cùng tính chẵn lẻ.

Có A thì biết được k và b. Biết b thì biết được các giá trị có thể có của n. Biết k thì chỉ xét 2 giá trị của n (cùng tính chẵn lẻ với k). Xét 2 giá trị này của n để xem có D chẵn hay không.

Khi kiểm tra mà thấy với n nào đó, tức M nào đó, có D nguyên dương thỏa điều kiện đã cho thì không xét trường hợp thứ 2 nữa. Bởi bài toán chỉ có thể có nhiều nhất là 1 cặp nghiệm:
- không có nghiệm, ví dụ cho sai tổng 12D + 31M
- nếu có nghiệm thì chỉ có 1 nghiệm. ***

Chứng minh *** bằng phản chứng. Giả sử có 2 cặp (M1, D1), (M2, D2) với M1 <> M2 thỏa:
12D1 + 31M1 = A = 12D2 + 31M2
=> 12(D1-D2) = 31(M2-M1) => D1-D2 chia hết cho 31 => D1-D2 = 0
=> 31(M2-M1) = 0 => M2 = M1, trái với giả thiết (đ.p.c.m)
 
Tôi thử tìm cái đăc biệt của con số 31 thì được:
Tháng có thứ tự của nó. Cái đặc biệt của một dãy (block) 31 tháng là luôn luôn cho ra 942 ngày (943 nếu tính năm nhuần)
 
Đặt 12d+31m=n, (1<=d<=31, 1<=m<=12). Nếu có 2 ngày d1>= d2 để 12*d1- 12*d2 chia hết cho 31 thì 12*(d1-d2) chia hết cho 31. Do 31 là số nguyên tố nên d1-d2 chia hết cho 31, mà 0<=d1-d2<31 nên d1-d2=0. Từ đó các số 12*1, 12*2,..., 12*31 khi chia cho 31 được 31 số dư đôi một khác nhau. Gọi x là số dư khi chia n cho 31, có thể tìm được duy nhất số d để 12*d-x chia hết cho 31. Tìm được d rồi thì m=(n-12*d)/31. Các giá trị d tương ứng với x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 là
d=31,13,26,8,21,3,16,29,11,24,6,19,1,14,27,9,22,4,17,30,12,25,7,20,2,15,28,10,23,5,18
 
Chào mọi người,
Có người đố mình câu đố thế này nếu được cho 1 con số là kết quả của phép tính 12D + 31M (trong đó D là ngày, M là tháng) thì làm sao biết được D = bao nhiêu và M = bao nhiêu.
Nhờ mọi người cùng giải đáp giúp.
Cảm ơn
P/S: Bình có 1 kiểu công thức đoán được nhưng không chứng minh bằng toán được.
1589282593765.png
Tháng: B2 =MATCH(MOD(B1,12),{7,2,9,4,11,6,1,8,3,10,5,0},0)
Ngày: B3 =(B1-31*B2)/12
 
View attachment 237250
Tháng: B2 =MATCH(MOD(B1,12),{7,2,9,4,11,6,1,8,3,10,5,0},0)
Ngày: B3 =(B1-31*B2)/12
Công thức của anh hay quá, em đoán @phuocam cũng gần giống vậy.

đây là công thức của em. tạm dùng ô tham chiếu của anh

B2=mod(Mod(B1,12)*31-1,12)+1
B3 = (B1-31*B2)/12
điều kiện đi kèm B2 không âm hoặc con số tháng và ngày kết hợp ra con số ngày có nghĩa (ví ko phải là 31/4)
Tất nhiên chuyện này là do ô nhập vào là B1 phải đúng.
 
Bài này chắc giống với bài về phương trình vô định:

Trăm trâu trăm cỏ:
Trâu đứng ăn 5 (bó)
Trâu nằm ăn ba (bó)
Trâu già lợm khọm 3 con 1 bó!
Dùng cách ngu tí
Phần khó cao thủ bên trên đã giải xong, phần dễ nhất dành lại mình. Hehe!.
Mã:
Function TimNgayThang(I As Integer) As String
Dim D As Byte
Dim M As Byte
    For D = 1 To 31
    For M = 1 To 12
        If (12 * D + 31 * M = I) Then
            TimNgayThang = "Ngay la: " & CStr(D) & ", Thang la: " & CStr(M)
            Exit For
        End If
    Next M
    Next D
End Function

Bình loạn:

* I=12D+31M. Tìm D, M khi biết I.
Trong đó I,D,M là số nguyên dương.
D<=31; M<=12.

* I.min=12.1+31.1=43
I.max=12.31+31.12=744.
---> 43<=I<=744.

Tổng cộng I có 31*12=372 số tổ hợp do D và M tạo ra.

* Vì I là đã biết cho trước, tìm D,M nên D, M là ẩn số. I=12D+31M.
Bài toán tương đương tìm nghiệm nguyên của phương trình ax+by=C <=> 12x+31y=I
Lời giải cần kiến thức về số đồng dư và tính chất chia hết. Dùng toán có vẻ khó nhằn đây.
Nghĩ mãi không ra thì vào lại diễn đàn thấy có lời giải rồi.
Nhất là công thức chỉ cần 2 dòng
- Vô cùng ngắn gọn súc tích.
- Không chỉ một mà nhiều cách giải.
Quá hay!

Khâm phục các bác quá!
 
Web KT

Bài viết mới nhất

Back
Top Bottom