Mình cần giúp đỡ về hàm ghép số

tukut3boyhp9x

Thành viên mới
Tham gia ngày
9 Tháng một 2018
Bài viết
8
Được thích
1
Điểm
165
Tuổi
30
Hiện tại mình muốn ghép số giống toán xác suất là có 10 số và mình muốn ghép thành nhiều trường hợp
vd: có 3 số A , B và C và 3 cell mình nhận được là
A-B-C
A-C-B
B-C-A
B-A-C
C-B-A
C-A-B
vì mình dùng mười số nên có khá nhiều trường hợp liệu excel có hàm hay lênh VBA nào giải quyết được không ạ
xin các cao nhân chỉ giáo
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
1,228
Được thích
1,307
Điểm
360
Hiện tại mình muốn ghép số giống toán xác suất là có 10 số và mình muốn ghép thành nhiều trường hợp
vd: có 3 số A , B và C và 3 cell mình nhận được là
A-B-C
A-C-B
B-C-A
B-A-C
C-B-A
C-A-B
vì mình dùng mười số nên có khá nhiều trường hợp liệu excel có hàm hay lênh VBA nào giải quyết được không ạ
xin các cao nhân chỉ giáo
Hàm có sẵn của excel chỉ tính được số lượng, để liệt kê như của bạn dùng VBA là giải quyết được.
Gửi file lên đi bạn
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
9,516
Được thích
11,399
Điểm
1,560
10 số cho ra nhiều kiểu lắm, khoảng trên 3,6 triệu. Có chắc muốn vậy hôn?
 
Lần chỉnh sửa cuối:

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
9,516
Được thích
11,399
Điểm
1,560
Đây là code hoán vị các ký tự trong một chuỗi, tôi cóp lại của GeeksForGeeks
Muốn loại dữ liệu số thì đổi thành array.

' Sub to print permutations of string
' This sub takes three parameters:
' a: String
' l: Starting index of the string
' r: Ending index of the string.
Sub permute(a As String, l As Integer, r As Integer)
Dim i As Integer
If l = r Then
PrintOut a
Else
For i = l To r
swap a, l, i
permute a, l + 1, r
swap a, l, i ' backtrack
Next i
End If
End Sub

Sub swap(a As String, p1 As Integer, p2 As Integer)
' swaps characters at positions p1 and p2 in string a
Dim tmpS As String
tmpS = Mid(a, p1, 1)
Mid(a, p1, 1) = Mid(a, p2, 1)
Mid(a, p2, 1) = tmpS
End Sub

Sub PrintOut(a As String)
Debug.Print a
End Sub

Code chạy thử:

permute "abcd", 1, len("abcd")
 

tukut3boyhp9x

Thành viên mới
Tham gia ngày
9 Tháng một 2018
Bài viết
8
Được thích
1
Điểm
165
Tuổi
30
Đây là code hoán vị các ký tự trong một chuỗi, tôi cóp lại của GeeksForGeeks
Muốn loại dữ liệu số thì đổi thành array.

' Sub to print permutations of string
' This sub takes three parameters:
' a: String
' l: Starting index of the string
' r: Ending index of the string.
Sub permute(a As String, l As Integer, r As Integer)
Dim i As Integer
If l = r Then
PrintOut a
Else
For i = l To r
swap a, l, i
permute a, l + 1, r
swap a, l, i ' backtrack
Next i
End If
End Sub

Sub swap(a As String, p1 As Integer, p2 As Integer)
' swaps characters at positions p1 and p2 in string a
Dim tmpS As String
tmpS = Mid(a, p1, 1)
Mid(a, p1, 1) = Mid(a, p2, 1)
Mid(a, p2, 1) = tmpS
End Sub

Sub PrintOut(a As String)
Debug.Print a
End Sub

Code chạy thử:

permute "abcd", 1, len("abcd")
Cảm ơn mọi người đã tham gia bình luận bài viết này ạ mình sẽ thử lệnh như bác ở trên để thử rồi sẽ gửi file lên và nhờ các cao nhân tiếp ạ
Bài đã được tự động gộp:

Tại cũng muốn xem bài toán có thực sự cần liệt kê tất cả hay là có chọn lọc vậy thôi bác.
Dạ vâng mình sẽ làm thử rồi send file lên nhờ mọi người ạ
 

xuongrongdat

Có bao giờ bạn tự hỏi "Tôi là ai?"
Tham gia ngày
30 Tháng sáu 2008
Bài viết
314
Được thích
216
Điểm
710
Nơi ở
Mỹ Tho- Tiền Giang
Hiện tại mình muốn ghép số giống toán xác suất là có 10 số và mình muốn ghép thành nhiều trường hợp
vd: có 3 số A , B và C và 3 cell mình nhận được là
A-B-C
A-C-B
B-C-A
B-A-C
C-B-A
C-A-B
vì mình dùng mười số nên có khá nhiều trường hợp liệu excel có hàm hay lênh VBA nào giải quyết được không ạ
xin các cao nhân chỉ giáo
Khá nhiều trường hợp ở đây là 10! = 3.628.800 trường hợp. híc, cũng khá đó chớ :D
1596179748863.png
 

tukut3boyhp9x

Thành viên mới
Tham gia ngày
9 Tháng một 2018
Bài viết
8
Được thích
1
Điểm
165
Tuổi
30
Khá nhiều trường hợp ở đây là 10! = 3.628.800 trường hợp. híc, cũng khá đó chớ :D
View attachment 242147
Treo file luôn ạ :D
Bài đã được tự động gộp:

Cần ghi nhớ là nếu muốn nhờ "cao nhơn" thì xin miễn tôi nhé.
:D bác giúp em quả code lý tưởng quá rồi còn xin thêm sao nữa ạ
 

xuongrongdat

Có bao giờ bạn tự hỏi "Tôi là ai?"
Tham gia ngày
30 Tháng sáu 2008
Bài viết
314
Được thích
216
Điểm
710
Nơi ở
Mỹ Tho- Tiền Giang
Treo file luôn ạ :D
Bài đã được tự động gộp:


:D bác giúp em quả code lý tưởng quá rồi còn xin thêm sao nữa ạ
Không treo cũng lạ.

Mà ý bác vetmini nói bạn không dùng từ "cao nhân" á. Dùng "mọi người" hoặc "anh chị" là được rồi.
Bạn nói thế những ai không tự nhận mình là cao nhân (thường là cao nhân, hihi) đâu có giúp bạn đâu. Còn bạn nói "thấp nhân" thì cũng chả ai dám vô giúp luôn, hahaa.
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
9,516
Được thích
11,399
Điểm
1,560
Bởi vậy mới hỏi có chắc muốn 10 số hôn?
Hàm trên dùng phép đệ quy để hoán đổi. Đệ quy thì thường là chậm.
Máy tôi chạy 8 số đã mất hơn 2 phút rồi. Muốn chạy 9 số chắc khoảng 20 phút, 10 số chắc 3 giờ.
Muốn chạy nhiều số bắt buộc phải dùng thuật toán khác, nhanh hơn.
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
9,516
Được thích
11,399
Điểm
1,560
Nếu là vé số thì từ đầu đặt vấn đề đã sai bấy.
 

xuongrongdat

Có bao giờ bạn tự hỏi "Tôi là ai?"
Tham gia ngày
30 Tháng sáu 2008
Bài viết
314
Được thích
216
Điểm
710
Nơi ở
Mỹ Tho- Tiền Giang
dạ em dùng để được nhìn thấy 28 triệu vé viettlott để coi tổng có tất cả bao nhiêu một cách cụ thể ạ
Ơ, bạn đang tìm cách tính ra con số này à?
gpe124.jpg

Hay là bạn muốn tìm hiểu ý nghĩa cách tính?
Hay bạn muốn XEM TRỌN đầy đủ gần 29 triệu kiểu biểu diễn của 6 cặp số này?

Để làm gì ta? :D
 

Nhattanktnn

Thành viên thường trực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
388
Được thích
309
Điểm
210

xuongrongdat

Có bao giờ bạn tự hỏi "Tôi là ai?"
Tham gia ngày
30 Tháng sáu 2008
Bài viết
314
Được thích
216
Điểm
710
Nơi ở
Mỹ Tho- Tiền Giang
Mấy nay không thấy bạn đâu :D
Hi, chiều thứ Sáu với thứ Bảy, Chủ nhật nghỉ. Giờ hành chính các ngày còn lại đi làm bình thường mới xẹt ra xẹt vô forum cho... dzui. Mình hay chiếm dụng thời gian của cơ quan lắm, híc, không khéo bị đuổi như chơi, éc.
 

Nhattanktnn

Thành viên thường trực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
388
Được thích
309
Điểm
210
Hi, chiều thứ Sáu với thứ Bảy, Chủ nhật nghỉ. Giờ hành chính các ngày còn lại đi làm bình thường mới xẹt ra xẹt vô forum cho... dzui. Mình hay chiếm dụng thời gian của cơ quan lắm, híc, không khéo bị đuổi như chơi, éc.
Làm mà 6,7,8 nghỉ thì xin cho mình suất với =))
Loãng đề tài mod lại nhắc nhở bây giờ :D
 
Top Bottom