Thử thách (1 người xem)

Liên hệ QC

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

VetMini

Đang đi tìm hòn đá
Tham gia
21/12/12
Bài viết
17,868
Được thích
24,782
Nghề nghiệp
Thầy bói bài ta
Có bài toán như vầy:
Ghe đưa lên một cần xé cam và một cần xé quýt. Mướn xe ba gác thồ về miễu. Có người mách lẻo là lúc trên xe có điều ô uế cho nên hai cần xé này không cúng được nữa. Chỉ còn đem ra phát cho chúng sinh đi viếng miễu.
Bây giờ chia ra đĩa. Thầy bói ngồi trước miễu xem xâm và giải quẻ sâm "gia nhất" ra thành:
Miễu này nằm giữa hai hòn. "gia nhất" là thêm một. Thêm một vào giữa hai hòn thành ra ba.
Chủ tin vậy và lập điều kiện mỗi đĩa phải có tối thiểu 2 quả này và một quả kia.
Cho biết làm cách nào để chia được nhiều đĩa nhất.
Nếu muốn viết code VBA càng tốt.

Gợi ý:
Trước mắt tôi có hai giải thuật. Giải thuật thứ nhất giản dị hơn nhưng giải thuật thứ hai thực tế hơn.
Nếu quý vị cho rằng gợi ý này khó hiểu thì cứ việc bỏ qua cái "giải thuật thực tế"
 
Lần chỉnh sửa cuối:
Có bài toán như vầy:
Cần xé cam có C quả. Cần xé quýt có Q quả.
Bây giờ chia ra đĩa. Với điều kiện mỗi đĩa phải có tối thiểu 2 quả này và một quả kia.
Cho biết làm cách nào để chia được nhiều đĩa nhất.
Nếu muốn viết code VBA càng tốt.

Gợi ý:
Trước mắt tôi có hai giải thuật. Giải thuật thứ nhất giản dị hơn nhưng giải thuật thứ hai thực tế hơn.
Nếu quý vị cho rằng gợi ý này khó hiểu thì cứ việc bỏ qua cái "giải thuật thực tế"
Max số đĩa là min( Q, C ).
Xếp gạch hóng
---

Xem lại có lẽ chưa chặt. Vẫn hóng
 
Không biết thế này gọi là gì, thực tế hay chết tiệt :p :p

- Lấy bên nhiều 2 quả, bên ít 1 quả, sắp từng đĩa cho đến khi số còn lại bằng nhau (hoặc hơn kém 1)
- Bắt đầu lấy 2 này 1 kia, rồi 2 kia 1 này, rồi lại 2 này 1 kia (luân phiên) đến khi hết hoặc còn lẻ không đủ 1 đĩa
 
Lần chỉnh sửa cuối:
Thường Quýt nhỏ hơn Cam nên 1 cần xé sẽ nhiều quả hơn, do đó cứ lấy 2 Q + 1 C. :)
 
Xin lỗi mọi người. Tôi viết xong đọc lại thì chả thấy gì thực tế để mà nói chuyện thực tế cả.

Xinn đọc lại bài #1 để lấy ý tưởng "thực tế" hơn :p
 
Thường Quýt nhỏ hơn Cam nên 1 cần xé sẽ nhiều quả hơn, do đó cứ lấy 2 Q + 1 C. :)
Nhiều hơn thì đúng, nhưng không phải nhiều gấp đôi. Lấy 2Q + 1C thì sẽ đến lúc cam hết quít còn 1 rổ (quít tiều nhỏ xíu), hoặc ngược lại (cam đẹt)
 
Số đĩa có lẽ tùy thuộc tỷ số giữa quýt ( Q ) & cam ( C )
Giả sử Q > C:
- Nếu Q>2C số đĩa = C
- Ngược lại Số đĩa = Q/2.
 
Số đĩa có lẽ tùy thuộc tỷ số giữa quýt ( Q ) & cam ( C )
Giả sử Q > C:
- Nếu Q>2C số đĩa = C
- Ngược lại Số đĩa = Q/2.
1. Q > 2C
Ví dụ Q = 100, C = 45
Theo bài 3 thì:
- bước 1: 90Q + 45C = 45 đĩa
- không có bước 2
Cộng 45 đĩa ( = C), bạn @CHAOQUAY đúng


2. Q < 2C
Ví dụ Q = 100, C = 55
- bước 1: 90Q + 45C = 45 đĩa. Mỗi loại còn 10
- bước 2: 2Q1C, 2C1Q, 2Q1C, 2C1Q, 2Q1C, 2C1Q = 6 đĩa. Mỗi loại còn 1

Cộng 51 đĩa > Q/2
bạn @CHAOQUAY sai

Nếu Q = 100, C = 60, sau 2 bước tôi sẽ có 53 đĩa
 
Lần chỉnh sửa cuối:
Tóm cái thuật toán ct là:
Bước 1:
Gọi y là số đĩa, mỗi đĩa 2Q và 1C cho đến khi số còn lại bằng nhau
q -x = c - y
x = 2y
=> q - 2y = c - y
y = q - c
Thực tế y = min(q - c, c)
Bước 2:
Gọi số còn lại là z (z>0)
z = c - y = c - q + c = 2c - q
Số đĩa của bước 2 (t) là 2/3 của z (t = z * 2 / 3)

Viết hàm:
t = If((c - y) > 0, z * 2 / 3, 0)

Kết quả cuối = y + t = min(q - c, c) + If((2c - q) > 0, RoundDown((2c - q) * 2 / 3,0), 0)

Cái kết quả cuối này đúng hay sai thì chờ lão chủ ra đề
 
Lần chỉnh sửa cuối:
Tóm cái thuật toán ct là:
Bước 1:
Gọi y là số đĩa, mỗi đĩa 2Q và 1C cho đến khi số còn lại bằng nhau
...
Đâu có lý do gì buộc "số còn lại bằng nhau"
Tôi có một chục quýt và 9 cam
6 đĩa: 12 quít + 6 cam.
Còn lại 0 quýt và 3 cam.

Gợi ý: với 3 cam còn lại ở trên, bày ra thêm được 1 đĩa nữa. Kết quả của 12 quýt và 9 cam là 7 đĩa.

Chú thích: toi dùng "chục" chung là 12 nhé. Chớ có bắt bẻ chục ở địa phường đâu đó là 14, hay 16. :p
 
Lần chỉnh sửa cuối:
điều kiện mỗi đĩa phải có tối thiểu 2 quả này và một quả kia.
Số dĩa tối đa là số thấp nhất trong 3 điều kiện sau:

1. Số quýt

2. Số cam

3. Làm tròn =>(Số quýt+Số cam)/3

Công thức: =MIN(Số quýt, Số cam, INT((Số quýt+Số cam)/3)

Số dĩa tối đa của 12 Q+ 9C là: =Min(12,9,int(12+9)/3) = 7
 
Dùng vòng lặp liệt kê:
PHP:
Public Function SoDiaCamQuyt(ByVal Cam As Long, ByVal Quyt As Long, ByVal SoLuong1Dia As Long) As Long
'SoLuong1Dia là so luong toi thieu tren 1 dia
Dim SLTD As Long 'so luong toi da tren 1 dia
If SoLuong1Dia < 2 Then Exit Function
SLTD = SoLuong1Dia - 1
Do While Cam + Quyt >= SoLuong1Dia And Cam > 0 And Quyt > 0
    If Cam > Quyt Then
        Cam = Cam - SLTD
        Quyt = Quyt - 1
    Else
        Cam = Cam - 1
        Quyt = Quyt - SLTD
    End If
    SoDiaCamQuyt = SoDiaCamQuyt + 1
Loop

End Function

=SoDiaCamQuyt(12,9,3)
 
Tôi có một chục quýt và 9 cam
6 đĩa: 12 quít + 6 cam.
Còn lại 0 quýt và 3 cam.

Gợi ý: với 3 cam còn lại ở trên, bày ra thêm được 1 đĩa nữa. Kết quả của 12 quýt và 9 cam là 7 đĩa.
Từ
mỗi đĩa phải có tối thiểu 2 quả này và một quả kia
suy ra là trên mỗi đĩa phải có cả 2 loại quả. 3 quả cam làm sao xếp được một đĩa vậy?
Đâu có lý do gì buộc "số còn lại bằng nhau"
Nếu điều kiện như tôi trích ở trên thì bài #3 đúng. Chỉ là bài #9 diễn giải bài #3 chưa chặt.

Chính xác phải là: Theo bài 3 thì bước 1 kết thúc khi "bên ít" và "bên nhiều" còn số quả bằng nhau k >= 0 (cùng hết hoặc cùng còn số quả như nhau), hoặc "bên ít" không còn quả nào còn "bên nhiều vẫn còn.

1. q >= 2c -> bước 1: số đĩa = c. Không có bước 2.
2. q < 2c -> bước 1: số đĩa = (q-c). Còn lại quít = q-2*(q-c) = 2*c-q, cam = c-(q-c) = 2*c-q.
Số đĩa trong bước 2 = ((2*c-q) \ 3)*2 + 1 (nếu 2*c-q chia 3 dư 2)

Nếu giả thiết là có thể quít nhiều hơn cam hoặc cam nhiều hơn quít (cam mimi) thì hàm tổng quát
Mã:
Function so_dia(ByVal q As Long, ByVal c As Long) As Long
Dim k As Long
    If q < c Then
        k = q
        q = c
        c = k
    End If
    If q >= 2 * c Then
        so_dia = c
    Else
        so_dia = (q - c) + ((2 * c - q) \ 3) * 2
        If (2 * c - q) Mod 3 = 2 Then so_dia = so_dia + 1
    End If
End Function
 
Đâu có lý do gì buộc "số còn lại bằng nhau"
Thuật toán 2 bước, và bước 1 làm tới mức đó ấy chứ.
Gợi ý: với 3 cam còn lại ở trên, bày ra thêm được 1 đĩa nữa. Kết quả của 12 quýt và 9 cam là 7 đĩa.
Điều kiện là ít nhất một nọ hai kia nha bạn già. Nếu 3 cam được, thì 3 quit cũng được, vậy thì số đĩa = (P + Q)/3 (làm tròn), phân bước làm gì cho mệt

Số dĩa tối đa của 12 Q+ 9C là: =Min(12,9,int(12+9)/3) = 7
Bạn mô tả từng đĩa của 7 đĩa đó xem có thỏa điều kiện hai này 1 kia không nào?
Bài đã được tự động gộp:

Số đĩa trong bước 2 = ((2*c-q) \ 3)*2 + 1 (nếu 2*c-q chia 3 dư 2)
Chia 3 dư 2 mà thêm 1 đĩa thì đĩa cuối chỉ có 2 quả, không thỏa điều kiện. Hai quả dư đó phần thưởng cho người chia đó anh :D :D
 
Lần chỉnh sửa cuối:
Thử thêm 1 cách
Mã:
Option Explicit

Public Function SoDiaCamQuyt_(ByVal Cam As Long, ByVal Quyt As Long, ByVal SoLuong1Dia As Long) As Long
Dim Q0, Q1
Dim SLTD As Long 'so luong toi da tren 1 dia
Dim k, t

SLTD = SoLuong1Dia - 1
If Cam > Quyt Then
    Q0 = Cam
    Q1 = Quyt
Else
    Q0 = Quyt
    Q1 = Cam
End If

If Q0 >= SLTD * Q1 Then
    SoDiaCamQuyt_ = Q1
Else
'    k = Q0 / SLTD
'    t = (Q1 - k) \ SoLuong1Dia
'    SoDiaCamQuyt_ = k + t
    SoDiaCamQuyt_ = (Q0 + Q1) \ SoLuong1Dia'<<--
End If
End Function
 
Lần chỉnh sửa cuối:
Tôi test với 12 và 9 ra 7 đĩa. Bạn cũng thử mô tả từng đĩa xem có thỏa điều kiện ít nhất 2 này 1 kia không?
View attachment 269155

Giả sử Q=12 & C=9, xếp 3 quả, 2 này 1 kia.
Lần 1: Xếp theo Q = 12/2 = 6 đĩa; C dùng hết 6 quả còn lại 3.

Lần 2:
Nhặt 1 quả C, xếp vào 1 đĩa đã xếp, rút 1 quả Q ra. Làm 2 lần sẽ dư 2Q
Lấy 2Q ghép với 1C còn thừa sẽ thêm 1 đĩa.

Vậy là lần 2, với số dư C, mỗi lần dùng 3 quả sẽ được thêm 1 đĩa
 
Vậy là lần 2, với số dư C, mỗi lần dùng 3 quả sẽ được thêm 1 đĩa
Nếu vậy là dường như bước 2 bao gồm việc chỉnh sửa bước 1 mặc dù không thay đổi số đĩa bước 1. Quay về "tổng quát" thì tôi đang nghĩ có nên lấy tổng chia 3 phứt cho xong, khỏi phân bước.
 
Nếu vậy là dường như bước 2 bao gồm việc chỉnh sửa bước 1 mặc dù không thay đổi số đĩa bước 1. Quay về "tổng quát" thì tôi đang nghĩ có nên lấy tổng chia 3 phứt cho xong, khỏi phân bước.
Tổng chia 3 gặp trường hợp tỷ số Q/C >= 2+3 có thể xảy ra 1 đĩa chỉ có cùng 1 loại.
 
Giả sử Q=12 & C=9, xếp 3 quả, 2 này 1 kia.
Lần 1: Xếp theo Q = 12/2 = 6 đĩa; C dùng hết 6 quả còn lại 3.
Tôi lại thử với 13 và 8, Kết quả ra 6. Trong khi dùng công thức của tôi ra 7. Minh họa bằng 2 cột H và I
C2=LET(q,A1,c,A2,MIN(q-c,c)+IF((c*2-q)>0,ROUNDDOWN((c*2-q)*2/3,0),0))

1636856354012.png
 
Chia 3 dư 2 mà thêm 1 đĩa thì đĩa cuối chỉ có 2 quả, không thỏa điều kiện. Hai quả dư đó phần thưởng cho người chia đó anh :D :D
Anh nhầm rồi. 2*c-q là số quả của mỗi loại sau bước 1. Vì thế Chia 3 dư 2 có nghĩa là sau bước 1 thì bên quít có 3*n + 2 quả và bên cam cũng có 3*n + 2 quả. Tức 3n quít và 3n cam sẽ cho 2n đĩa. Còn lại 2 quít và 2 cam chứ không phải chỉ 2 quít hoặc 2 cam. Mà 2 quít và 2 cam sẽ cho 1 đĩa (1 quít + 2 cam hoặc 1 cam + 2 quít)
----------
Nếu q = 101, c = 56 thì có trườg hợp chia 3 dư 2.
Bước 1: có q-c = 45 đĩa. Còn dư quít = cam = 2*c-q = 112-101 = 11 = 3*3 + 2, tức chia 3 dư 2.

Mỗi bên còn 11 thì trong bước 2 ta có 9 cam + 9 quít cho 6 đia. Còn lại 2 cam và 2 quít cho 1 đĩa (1 quít + 2 cam dư 1 quít, hoặc 2 quít + 1 cam dư 1 cam)
 
Lần chỉnh sửa cuối:
Đúng là tôi nhầm. Tôi nhân 2 trước rồi mới chia 3, sau đó làm tròn xuống.
Nếu là code trong hàm của anh sẽ là:

so_dia = (q - c) + ((2 * c - q) * 2) \ 3

Của anh:

so_dia = (q - c) + ((2 * c - q) \ 3) * 2
If (2 * c - q) Mod 3 = 2 Then so_dia = so_dia + 1
 
Lần chỉnh sửa cuối:
1636862344333.png
Từ
1636862294571.png
suy ra là trên mỗi đĩa phải có cả 2 loại quả. 3 quả cam làm sao xếp được một đĩa vậy?
...
1636862525257.png
Điều kiện là ít nhất một nọ hai kia nha bạn già. Nếu 3 cam được, thì 3 quit cũng được, vậy thì số đĩa = (P + Q)/3 (làm tròn), phân bước làm gì cho mệt

Bạn mô tả từng đĩa của 7 đĩa đó xem có thỏa điều kiện hai này 1 kia không nào?
...

Bởi vậy tôi mói bảo là "gợi ý". Chứ nó thẳng thừng thì đã là chẳng cần gợi ý.
Đề bài đâu có bắt chỉ làm 1 lượt. Sau khi xếp đủ 6 đĩa, mối đĩa 2 quýt 1 cam xong thì tôi còn lại 3 cam. Tôi lấy lại một đĩa 2 quýt 1 cam thì tôi còn 5 đĩa, với 2 quýt 4 cam. Cuối cùng tôi có 5 đĩa 2 quýt 1 cam và 2 đĩa 1 quýt 2 cam.

Mà giải thích như vậy là tôi lộ luôn giải thuật của tôi rồi :p
 
Tôi lại thử với 13 và 8, Kết quả ra 6. Trong khi dùng công thức của tôi ra 7. Minh họa bằng 2 cột H và I
C2=LET(q,A1,c,A2,MIN(q-c,c)+IF((c*2-q)>0,ROUNDDOWN((c*2-q)*2/3,0),0))

View attachment 269156
Code bài 15 bị lỗi là do chưa xét tới trường hợp lần chia 1 bị dư.
Có lẽ trong trường hợp Q>C & Q<2C, lấy tổng chia 3 như bài 18 bác có nói là đúng, kết quả sẽ là phần nguyên của (Q+C)\3

---
Đã sửa lại bài 15
 
Thế với cái giải thuật lộ đó thì cách tính thế nào? Nhất là cái vụ sắp lên (đĩa) rồi rút ra bớt?
Với còm-piu-tơ thì Q và C đã có sẵn.
Lập vòng lặp, cứ bên nhiều hơn thì bốc hai và bên kia thì bốc 1.
Cuối cùng, ta còn lại 1 trong 3 trường hợp sau:
- cả hai bên quýt cam đều hết -> chẵn chòi, êm đẹp.
- cả hai bên quýt cam đều còn 1, hoặc bên còn 1 hoặc 2 và bên kia 0. Đây là trường hợp lẻ số, số dư nhỏ hơn 3. Cũng như con toán chia số nguyên, chả thể nào thêm đĩa nào nữa.
- một bên hết và bên kia còn >= 3. Đây là trường hợp có khả năng chia thêm.
Giả sử bên còn là Q:
Lập vòng lặp, lấy 3 từ Q và 1 đĩa từ số đĩa có 2C. Một lượt như vậy ta thêm được 1 đĩa (thêm 2 bớt 1, còn 1).
Vòng lặp chạy đến khi Q < 3 hoặc không còn số đĩa với 2C.

Cái cần để ý của bài giải này là có đến vài con số để xét liên tục: số cam, số quýt, số đĩa của mỗi loại.

Thực tế thì cái cần xé là cần xé, đâu có biết bao nhiêu quả? Ông chủ có thể biết lúc mua là bao nhiều, những chở trên ghe, lái ghe nó chôm mất một mớ thì sao?

Gải theo thực tế thì cứ liên tục lấy đại một bên 2 và bên kia 1, không cần biết bên nào nhiều hơn. Cuối cùng thì cũng ra cái số dư như kiểu trên.
 
Bởi vậy tôi mói bảo là "gợi ý". Chứ nó thẳng thừng thì đã là chẳng cần gợi ý.
Đề bài đâu có bắt chỉ làm 1 lượt. Sau khi xếp đủ 6 đĩa, mối đĩa 2 quýt 1 cam xong thì tôi còn lại 3 cam. Tôi lấy lại một đĩa 2 quýt 1 cam thì tôi còn 5 đĩa, với 2 quýt 4 cam. Cuối cùng tôi có 5 đĩa 2 quýt 1 cam và 2 đĩa 1 quýt 2 cam.

Mà giải thích như vậy là tôi lộ luôn giải thuật của tôi rồi :p
À, tôi tưởng bác định xếp 3 cam vào 1 đĩa. Còn xếp lại thì được 7 đĩa. Làm theo bài #3 hay hàm của tôi cũng cho 7 đĩa.
 
Giả sử ban đầu có c cam, q quýt, không mất tính tổng quát ta giả sử c<=q. Các quả được xếp vào x đĩa 1 cam 2 quýt và y đĩa 1 quýt 2 cam. Số cam xếp được là x+2y, số quýt y+2x nên x+2y<=c, y+2x<=q. Do đó x+y<=x+2y<=c và x+y<=(c+q)/3.
Trường hợp c<=(c+q)/ 3 tức là 2c<=q thì max(x+y)=c, đạt được khi x=c, y=0, lúc này x+2y=c, y+2x=2c<=q.
Trường hợp c>(c+q)/ 3 thì 2c-q>=1, đặt c+q=3n+d (0<=d<=2) thì ta chứng minh max(x+y)=n, chọn x=q-n-d, y=c-n thì x+2y=c, y+2x=q-d<=q. Ta chứng minh x, y>=0. Trường hợp c=q=1 thì max(x+y)=0, ta xét q>1. 3x=3q-3n-3d=3q-(q+c-d)-3d=2q-c-2d>=q-2d>1-4=-3 mà 3x chia hết cho 3 nên 3x>=0, x>=0. 3y=3c-3n=3c-(q+c-d)=2c-q+d>0.
Tổng kết lại ta được max (x+y) = min(c, q, int((c+q)/3)).
 
Thực tế thì cái cần xé là cần xé, đâu có biết bao nhiêu quả? Ông chủ có thể biết lúc mua là bao nhiều, những chở trên ghe, lái ghe nó chôm mất một mớ thì sao?
.............
Giải theo thực tế thì cứ liên tục lấy đại một bên 2 và bên kia 1, không cần biết bên nào nhiều hơn. Cuối cùng thì cũng ra cái số dư như kiểu trên.
Quay lại vấn đề thực tế thì cách chia bằng cách lấy đại để có số dư đẹp sẽ rơi vào trường hợp phải lâm vào cảnh "sắp lên rồi lại phải rút ra" khá nhiều. Ví dụ mỗi loại sàn sàn 100 (100 và 80, tính toán thì ra 60 đĩa theo lý thuyết),
- Lấy đại 2 quả trúng vào bên 100, 1 quả bên 80: được 50 lần, dư 30 bên ít. Thế là phải rút ra 10 lần từ 10 đĩa đã chia để làm lại thành 20 đĩa mới
- Lấy đại 2 quả trúng vào bên 80, 1 quả bên 100: được 40 lần, dư 60 bên nhiều. Thế là phải rút ra 20 lần để tạo 40 đĩa mới

Tôi đề xuất:
Do " lái ghe nó chôm mất một mớ" nên không biết số lượng mỗi cần xé. Dùng mắt ước lượng sự to nhỏ của quả, ước lượng ra 2 trường hợp:

TH 1: Hai loại có số lượng sem sem (cam thì đèo, quýt thì to)
- Luân phiên lấy 2 này 1 kia và 2 kia 1 này cho đến khi bằng mắt có cảm giác 1 bên còn nhiều hơn hẳn
- Lấy 2 bên nhiều và 1 bên ít (không luân phiên), cho đến khi bằng mắt có cảm giác 2 bên gần bằng nhau
- Quay lại "luân phiên" như bước 1, rồi lại dùng mắt ước lượng để tiếp bước 2
Mức 100 thì vài lần là có thể đếm bằng mắt và không cần phải "rút ra" làm gì

TH 2: Một bên nhiều hơn hẳn bên kia (cam to ra cam, quýt nhỏ ra nhỏ)
- Lấy 2 bên nhiều và 1 bên ít cho đến khi bằng mắt có cảm giá số lượng còn lại của hai bên gần bằng nhau (bên quýt vơi hơn do trái nhỏ). Nếu bên ít hết trước thì ngưng.
- Luân phiên lấy 2 này 1 kia và 2 kia 1 này cho đến khi bằng mắt có cảm giác 1 bên còn nhiều hơn hẳn
- Lại lấy 2 bên nhiều và 1 bên ít như bước 1 và sẵn sàng làm bước 2 1 lần nữa.
Khi có thể đếm bằng mắt là coi như xong, không cần "rút ra".
 
Lần chỉnh sửa cuối:
Function XepDia21(ByVal cam As Long, ByVal quyt As Long) As Variant
' ham xep cam quyt len dia. Dieu kien: moi dia 3 qua gom ca hai loai.
' ham tra ve mot mang hai phan tu, phan tu 1 la so dia 2 cam, phan tu hai la so dia 2 quyt
Dim dia2C As Long, dia2Q As Long, i As Long
' xep dia 2 cam truoc
Do While cam >= 2 And quyt >= 1
XepMotDia dia2C, cam, quyt
Loop
' tuy theo so du cua quyt, tra bot dia lai
Do While quyt >= 3 And dia2C > 0
dia2C = dia2C - 1
dia2Q = dia2Q + 2
quyt = quyt - 3
Loop
' truong hop con du 1 cam va 2 quyt
Do While quyt >= 2 And cam >= 1
XepMotDia dia2Q, quyt, cam
Loop
XepDia21 = Array(dia2C, dia2Q)
End Function

Sub XepMotDia(ByRef soDia As Long, ByRef lay2 As Long, ByRef lay1 As Long)
soDia = soDia + 1
lay2 = lay2 - 2
lay1 = lay1 - 1
End Sub

' HAM TEST !!!!!!!!

Function t(cam, quyt)
a = XepDia21(cam, quyt)
' dia 2 cam, dia 2 quyt, so du cam, so du quyt
t = a(0) & ", " & a(1) & ", " & (cam - 2 * a(0) - a(1)) & ", " & (quyt - 2 * a(1) - a(0))
End Function
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom