tìm dãy số ngẫu nhiên trong một dãy số cho trước (2 người xem)

Liên hệ QC

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

huuthanhlaocai

Thành viên mới
Tham gia
30/12/19
Bài viết
1
Được thích
0
các anh chị giúp em bài toán excel này với ạ! Em có một dãy số từ 1 đến 45 giờ em muốn lấy ra các dãy số có 6 số ngẫu nhiên không trùng lắp
Bài đã được tự động gộp:
 
Lần chỉnh sửa cuối:
1. Đổi tiêu đề lại cho đúng với câu hỏi. Hiện giờ thì tiêu đề đang phạm luật diễn đàn: "tiêu đề chung chung"

2. Bài này trên diễn đàn đã có mấy bài giải. Chịu khó tìm

3. Ngẫu nhiên không trùng lặp 6 số trong 45 là Lotto đứt đuôi.
 
Bạn nên đưa cái dãy số mà bạn có lên diễn đàn đi & sửa tiêu đề chưa í nhỉ?
 
1. Đổi tiêu đề lại cho đúng với câu hỏi. Hiện giờ thì tiêu đề đang phạm luật diễn đàn: "tiêu đề chung chung"

2. Bài này trên diễn đàn đã có mấy bài giải. Chịu khó tìm

3. Ngẫu nhiên không trùng lặp 6 số trong 45 là Lotto đứt đuôi.
Trước nay cứ tưởng cho trùng
 
Trước nay cứ tưởng cho trùng
Khác lượt/ván mới cho trùng bạn ơi.
Cái này có nhiều cách đánh.
Cách thông dụng nhất là chơi luôn 10-12 ván, mỗi ván rút 6 số. Đương nhiên là trả tiền gấp 10-12 lần
Cách thông dụng nhì là chơi bao 8-10 số. Rút ra 8-10 số, 6 trong nhóm mà trúng là độc đắc, các giải khác thì tuỳ theo trúng được bao nhiêu. Hình như cái này trả khoảng 20+ lần thì phải. Nhất thời quên mất con toán tính.
 
Khác lượt/ván mới cho trùng bạn ơi.
Cái này có nhiều cách đánh.
Cách thông dụng nhất là chơi luôn 10-12 ván, mỗi ván rút 6 số. Đương nhiên là trả tiền gấp 10-12 lần
Cách thông dụng nhì là chơi bao 8-10 số. Rút ra 8-10 số, 6 trong nhóm mà trúng là độc đắc, các giải khác thì tuỳ theo trúng được bao nhiêu. Hình như cái này trả khoảng 20+ lần thì phải. Nhất thời quên mất con toán tính.
Chơi bao có vẻ dể trúng, chơi bao vài năm không thắng thì bán nhà cũng đủ trả nợ
 
Thì 45 số từ 1 tới 45, còn đưa gì thêm nữa?
Nếu chỉ có 45 số thì thử cái cùi bắp này:
PHP:
Sub SauSoKhongTrungTrong45So()
 Dim J As Integer, Tmp As Integer
 Dim MyNum As String, DapAn As String
 
 For J = 1 To 45
    If J Mod 2 Then
        MyNum = MyNum & Right("0" & CStr(J), 2)
    Else
        MyNum = Right("0" & CStr(J), 2) & MyNum & ""
    End If
 Next J
 Randomize
 For J = 1 To 6
    Tmp = 13 + 7 * Rnd() \ 1
    If Tmp Mod 2 = 0 Then Tmp = Tmp + 1
    DapAn = Mid(MyNum, Tmp, 2) & "; " & DapAn
    MyNum = Mid(MyNum, Tmp + 2, Len(MyNum)) & Left(MyNum, Tmp - 1)
 Next J
 [D65500].End(xlUp).Offset(1).Value = DapAn
End Sub
& chúc vui!
 
Cần chi phải cốt kiếc. Chỉ có 6 trên 45 thì cơ hội trùng cũng đâu nhiều. Cứ việc làm 6 cái Randbetween, và conditionnal formatiing 6 ô đó, trùng thì đổi phông đỏ chẳng hạn.
Hàm Randbeween là volatile, mỗi lần muốn tính lại chỉ việc vào một nơi nào đó gõ cái gì đó là chúng tính lại.
 
Ai có giươm thì dùng giươm, không có nó thì xài cuốc thuổng hay gậy gộc . . . mà!
 
Chỗi cùn gẽ rách ai mà mua, bán nội tạng đi, có giá lắm luôn nha!
 
Chỗi cùn gẽ rách ai mà mua,
Đây là sự cùng đường mà. Rằng đã mất tất cả những cái có giá trị trong cuộc sống. Không còn gì để bán, để nhượng, chỉ còn cái chổi cùn để bấu víu vào nó và nuôi hi vọng ...................................hão huyền.
bán nội tạng đi, có giá lắm luôn nha!
Lúc ấy thì nội tạng đã bán từ lâu rồi, đào đâu ra nội tạng mới để bán tiếp. :D
 
Vậy thì ngày Tết đến, mình giúp cho bán linh hồn luôn.
Hàm này cho lấy số bao 8-10-12 hay 16 gì đó tùy thích. Tùy theo đủ tiền mua hôn.

Mã:
Function BanLH()
' generates an array of random numbers 1-45
' array size equals the number of cells chosen
' NB. should be entered as an array formula
Const TOTNUM = 45
Dim a(1 To TOTNUM) As Integer
Dim b() As Integer, i As Integer, num As Integer
ReDim b(1 To Application.Caller.CurrentArray.count)
Randomize
For i = 1 To UBound(b)
  num = Int((TOTNUM - i + 1) * Rnd + i)
  b(i) = IIf(a(num), a(num), num)
  a(num) = i
Next i
BanLH = b
End Function
Chọn ô A1-F1 (6 số, muốn nhiều hơn thì cứ việc chọn tới H, J,...)
Gõ công thức =BanLH(), ấn Ctrl+Shift+Enter
Kéo xuống

Tha hồ đánh cho sập nhà sập cửa

Chú thích: tôi không chủ ý viết hàm lấy chuỗi số ngẫu nhiên, ở đây có cả đống rồi.
Toi chỉ nhân dịp này giới thiệu một cách sử dụng hàm mảng.
 
Lần chỉnh sửa cuối:
Cách dùng Application.Caller.CurrentArray quá hay, thử trình bày bắt mắt hơn chiêu dụ mọi người bán nhà nhanh hơn
Mã:
Function ChoiLoTo_BanNha()
  'Chon 1 dong nhieu cot, nhap "=ChoiLoTo_BanNha()" Ctrl+Shift+Enter
  Dim Arr() As Long, Res() As String
  Dim i&, j&, k&, RndNum&, sRow&, sCol&
  Const MaxNum = 45
Randomize
Application.Volatile
  sCol = Application.Caller.CurrentArray.Count
  ReDim Res(1 To sCol)
  ReDim Arr(1 To MaxNum)
  Do
    RndNum = Int(MaxNum * Rnd() + 1)
    If Arr(RndNum) = 0 Then Arr(RndNum) = 1: k = k + 1
  Loop Until k = sCol
  k = 0
  For j = 1 To MaxNum
    If Arr(j) = 1 Then
      k = k + 1
      Res(k) = Format(j, "00")
    End If
  Next j
  ChoiLoTo_BanNha = Res
End Function
 
Web KT

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

Back
Top Bottom