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

Liên hệ QC

tukut3boyhp9x

Thành viên mới
Tham gia
9/1/18
Bài viết
16
Được thích
1
Giới tính
Nam
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
 
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
 
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:
Đâ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")
 
Đâ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 ạ
 
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
 
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.
 
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.
 
Nếu là vé số thì từ đầu đặt vấn đề đã sai bấy.
 
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
 
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.
 
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
 
Web KT
Back
Top Bottom