Hugo Nguyen
Thành viên mới

- Tham gia
- 15/8/20
- Bài viết
- 38
- Được thích
- 4
2 ký tự A và B, thì chỉ có 1 tổ hợp : ABChào mọi người!
Mình có một bài toán như tiêu đề, nhờ mọi người giúp đỡ ạ.
Xin cảm ơn mọi người!
2 ký tự A và B, thì chỉ có 1 tổ hợp : AB
Thử công thức này xemChào mọi người!
Mình có một bài toán như tiêu đề, nhờ mọi người giúp đỡ ạ.
Xin cảm ơn mọi người!
=SUM(INDEX(COMBIN(10,ROW(A1:A10)),,))
Thử công thức này xem
Mã:=SUM(INDEX(COMBIN(10,ROW(A1:A10)),,))
Toán đại số nhị phân: A là 0, B là 1 thì 10 chữ số tức là 1024 số.
Theo lẽ thì hàm DEC2có thể làm ngon lành. Nhưng rất tiếc hàm này chỉ làm việc với số 0-511 (512 số đầu). Vì vậy phải cần thêm thủ thuật cho 512-1024
=IF(ROW()<=512, "A", "B") & SUBSTITUTE(SUBSTITUTE(DEC2BIN(MOD(ROW()-1,512),9), "0", "A"), "1", "B")
Kéo từ dòng 1 đến 1024
Viết hàm tự tạo Dec2Bin, ví dụ:Xin cảm ơn công thức của bác, nhưng nếu trường hợp cần tạo thành dãy nhiều ký tự hơn, tầm trên 20 ký tự thì có cách gì không bác?
Function D2B(ByVal Num As Long, Optional ByVal Places As Long = 1) As String
Dim qt As Long, rd As Long, Tmp As String
qt = Num
Do
rd = qt Mod 2
qt = Int(qt / 2)
Tmp = rd & Tmp
Loop Until qt = 0
D2B = Format(Val(Tmp), String(Places, "0"))
End Function
=SUBSTITUTE(SUBSTITUTE(d2b(ROW(A1),10),0,"A"),1,"B")
20 ký tựXin cảm ơn công thức của bác, nhưng nếu trường hợp cần tạo thành dãy nhiều ký tự hơn, tầm trên 20 ký tự thì có cách gì không bác?
=SUBSTITUTE(SUBSTITUTE(DEC2BIN(INT((ROW()-1)/262144),2)&DEC2BIN(MOD(INT((ROW()-1)/512),512),9)&DEC2BIN(MOD(ROW()-1,512),9),0,"A"),1,"B")
=SUBSTITUTE(SUBSTITUTE(DEC2BIN(INT((ROW()-1)/262144),5)&DEC2BIN(MOD(INT((ROW()-1)/512),512),9)&DEC2BIN(MOD(ROW()-1,512),9),0,"A"),1,"B")
Trước khi hỏi thì bạn có đoán thử 20 ký tự sẽ cho ra bao nhiêu kết quả chưa?Xin cảm ơn công thức của bác, nhưng nếu trường hợp cần tạo thành dãy nhiều ký tự hơn, tầm trên 20 ký tự thì có cách gì không bác?
Chắc người hỏi, chỉ hỏi cho vui: không hiểu cái này ứng dụng vào đâu? mà phải liệt kê ra hết cỡ ngần đó số.Trước khi hỏi thì bạn có đoán thử 20 ký tự sẽ cho ra bao nhiêu kết quả chưa?
Xem bài #8.Chắc người hỏi, chỉ hỏi cho vui: không hiểu cái này ứng dụng vào đâu? mà phải liệt kê ra hết cỡ ngần đó số.
Bây giờ người ta chơi tài xỉu nhiều vậy hả?Em thì đoán 99.99% cái này là tài xửu đó anh ơi.
...
Xin cảm ơn code của bác ndu96081631 nhiều ạ!Viết hàm tự tạo Dec2Bin, ví dụ:
Rồi cứ thế mà kéo fill trên bảng tính theo công thức sau:Mã:Function D2B(ByVal Num As Long, Optional ByVal Places As Long = 1) As String Dim qt As Long, rd As Long, Tmp As String qt = Num Do rd = qt Mod 2 qt = Int(qt / 2) Tmp = rd & Tmp Loop Until qt = 0 D2B = Format(Val(Tmp), String(Places, "0")) End Function
------------------------------------------------------------------------Mã:=SUBSTITUTE(SUBSTITUTE(d2b(ROW(A1),10),0,"A"),1,"B")
Cái này sao thấy giống giống dò tìm password protect sheet quá ta?
Trước khi hỏi thì bạn có đoán thử 20 ký tự sẽ cho ra bao nhiêu kết quả chưa?
Chắc người hỏi, chỉ hỏi cho vui: không hiểu cái này ứng dụng vào đâu? mà phải liệt kê ra hết cỡ ngần đó số.
A2=LEFT(REPLACE(A1,MATCH(2,1/(MID(A1,ROW($1:$100),1)="A")),100,"B"&REPT("A",100)),LEN(A1))
Bạn đừng hiểu lầm, bài toán của mình là: cho một dãy số và 1 tổng là tổng của một vài số trong dãy số đó, cần tìm các số tạo nên tổng đó.
Ủa, sao mình không đi thẳng vào vấn đề ngay từ đầu luôn?Bạn đừng hiểu lầm, bài toán của mình là: cho một dãy số và 1 tổng là tổng của một vài số trong dãy số đó, cần tìm các số tạo nên tổng đó.
Xin cảm ơn công thức của bác rất nhiều ạ!Bao nhiêu ký tự cũng được. Muốn bao nhiêu ký tự thì nhập vào A1 bấy nhiêu chữ A. Công thức sau áp dụng cho chuỗi từ 100 ký tự trở xuống.
Mã:A2=LEFT(REPLACE(A1,MATCH(2,1/(MID(A1,ROW($1:$100),1)="A")),100,"B"&REPT("A",100)),LEN(A1))
Mình đang làm bị vướng ở phần này nên hỏi phần này, phần này mình hỏi được rồi mình nghĩ phần sau có thể tự làm bạn ạ, cảm ơn bạnỦa, sao mình không đi thẳng vào vấn đề ngay từ đầu luôn?
Chính bạn dẫn dăt người ta hiểu lầm. Hai bài toán ấy khác nhau một trời một vực.Bạn đừng hiểu lầm, bài toán của mình là: cho một dãy số và 1 tổng là tổng của một vài số trong dãy số đó, cần tìm các số tạo nên tổng đó.
haha, cảm ơn gợi ý của bác ạ!
Nếu đi thẳng vào vấn đề thì loại đi rất nhiều tổ hợp không thỏa mãn, và có cần đến bài toán tổ hợp hay không nữa.Xin cảm ơn công thức của bác rất nhiều ạ!
Bài đã được tự động gộp:
Mình đang làm bị vướng ở phần này nên hỏi phần này, phần này mình hỏi được rồi mình nghĩ phần sau có thể tự làm bạn ạ, cảm ơn bạn![]()
Chính bạn dẫn dăt người ta hiểu lầm. Hai bài toán ấy khác nhau một trời một vực.
Một bên là bài toán Đại số nhị phân (hoàn toàn lô gic 0-1)
Bên kia là bài toán Ba lô (Knapsack problem, bài toán khởi phát thức)
Vừa đủ chiều dài một cột bảng tính excel (*.xlsx) chứ nhiêu bácTrước khi hỏi thì bạn có đoán thử 20 ký tự sẽ cho ra bao nhiêu kết quả chưa?
=SUBSTITUTE(SUBSTITUTE(BASE(ROW(A1),2,20),0,"A"),1,"B")
Vâng do Excel em cũng mới tập tành nên vừa học vừa hỏi vậy bác ạ, vậy có cách nào không cần dùng đến cách liệt kê tổ hợp vậy không bác?Nếu đi thẳng vào vấn đề thì loại đi rất nhiều tổ hợp không thỏa mãn, và có cần đến bài toán tổ hợp hay không nữa.
Toàn công thức hay, cảm ơn bác nhiều ạ!Tự nhiên quên mất hàm BASE. Dù bài toán đã được dẫn đi hướng khác như vẫn cứ đưa lên, ai áp dụng được gì thì áp dụng:
Số 20 là chiều dài chuỗi, thay nó thành bao nhiêu tùy ýMã:=SUBSTITUTE(SUBSTITUTE(BASE(ROW(A1),2,20),0,"A"),1,"B")
Ý người ta chắc thế này bác ạ. Vd. người ta có 10 (20) số cho trước a1, a2, ..., a10. Người ta muốn chọn ra "vài số" sao cho tổng của chúng bằng số S cho trước. Tức có thể viết:Chính bạn dẫn dăt người ta hiểu lầm. Hai bài toán ấy khác nhau một trời một vực.
Một bên là bài toán Đại số nhị phân (hoàn toàn lô gic 0-1)
Bên kia là bài toán Ba lô (Knapsack problem, bài toán khởi phát thức)
Có bài nói trên kia rồi đó, bạn dùng SOLVER của Excel nhé, và các cách khác, nhưng Solver là đơn giản và nhanhVâng do Excel em cũng mới tập tành nên vừa học vừa hỏi vậy bác ạ, vậy có cách nào không cần dùng đến cách liệt kê tổ hợp vậy không bác?
Tối hôm qua thì nó là dạng phá password Excel....
Chỉ là nếu thế thì dụng ý biến 0, 1 thành A, B để làm gì.
Thật thế? Tôi không đọc hết các bài nên không biết.Tối hôm qua thì nó là dạng phá password Excel.
Hai tiếng đồng hồ sau nó chuyển thành dạng chọn sequence tài xỉu/đen đỏ.
Sáng nay nó thành dạng Knapsack.
Dự là tối nay nó ló ra dạng đánh đề?
Ý người ta chắc thế này bác ạ. Vd. người ta có 10 (20) số cho trước a1, a2, ..., a10. Người ta muốn chọn ra "vài số" sao cho tổng của chúng bằng số S cho trước. Tức có thể viết:
b1*a1 + b2*a2 + ... + b10*a10 = S, trong đó b1, b2, ..., b10 lấy giá trị 0 hoặc 1. Nếu bx = 0, với x = 1, 2, ..., 10, thì có nghĩa là ax không có mặt trong "vài số" cần tìm.
Người ta bây giờ nhờ giúp liệt kê ra 1024 nhóm 10 ký tự nhị phân. Sau đó tính lần lượt 1024 tổng b1*a1 + b2*a2 + ... + b10*a10 và so sánh với S.
Chỉ là nếu thế thì dụng ý biến 0, 1 thành A, B để làm gì.
Có bài nói trên kia rồi đó, bạn dùng SOLVER của Excel nhé, và các cách khác, nhưng Solver là đơn giản và nhanh