Lấy số trong chuỗi theo số lượng

Liên hệ QC

NguyenNgocSon

KEEP WALKING
Tham gia
4/4/08
Bài viết
280
Được thích
832
Nghề nghiệp
Ths. Cầu hầm
Em có bài toán sau, đang nghĩ nhưng post thêm nhờ chỉ giúp
Em có dãy số sau: 44,48,49,50,51,52,53,54,55,56,57
Giờ e muốn tách lấy ngẫu nhiên không trùng như sau:
- Nếu nhập vào 2 chỉ lấy 2 số trong chuỗi không trùng
- Nếu nhập vào 3 chỉ lấy 3 số trong chuỗi không trùng
Cám ơn !
 
Em có bài toán sau, đang nghĩ nhưng post thêm nhờ chỉ giúp
Em có dãy số sau: 44,48,49,50,51,52,53,54,55,56,57
Giờ e muốn tách lấy ngẫu nhiên không trùng như sau:
- Nếu nhập vào 2 chỉ lấy 2 số trong chuỗi không trùng
- Nếu nhập vào 3 chỉ lấy 3 số trong chuỗi không trùng
Cám ơn !
Tức là đang có 1 dãy số không trùng hay dãy số có số trùng? Nếu lấy thì lấy từ trái qua phải, từ phải qua trái, hay lấy ngẫu nhiên?
 
Upvote 0
Dãy số không trùng, lấy ngẫu nhiên thế nào cũng được miền là thuộc danh sách.
 
Upvote 0
Dãy số không trùng, lấy ngẫu nhiên thế nào cũng được miền là thuộc danh sách.
Bạn dùng function này coi
vd: A1 là chuỗi số, B1 = ranttt(A1,x) - X là số phần tử bạn muốn lấy và >0
Mã:
Function ranttt(rg As Range, Optional bn As Integer = 1)
    Dim arr, i, j As Integer, dic As Object
    arr = Split(rg, ",")
    Set dic = CreateObject("Scripting.Dictionary")
    With dic
        Do While i < bn
            j = Int((UBound(arr) - 0 + 1) * Rnd + 0)
            If Not .exists(j) Then
                .Add j, j
                ranttt = ranttt & "," & arr(j)
                i = i + 1
            End If
        Loop
    End With
    ranttt = Right(ranttt, Len(ranttt) - 1)
End Function
 
Upvote 0
lâu quá không giãi trí VBA dợt lại tí coi ;;;;;;;;;;;;;;;;;;;;;;

Mã:
Public Function HellRan(rg As Range, Optional bn As Integer = 1) As String
Dim arr, i, j As Integer
arr = Split(rg, ",")
Randomize
For i = 0 To WorksheetFunction.Min(bn - 1, UBound(arr)) Step 1
    j = Int((UBound(arr) - i + 1) * Rnd) + i
    HellRan = HellRan & "," & arr(j)
    If j > i Then arr(j) = arr(i)
Next
HellRan = Mid(HellRan, 2)
End Function
 
Upvote 0
Web KT
Back
Top Bottom