Câu hỏi về thuật toán trong VBA (1 người xem)

Liên hệ QC

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

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Em có xem một hàm của anh NDU như sau

PHP:
Function UniqueRandomNum(Bottom As Long, Top As Long, Amount As Long)
  'Application.Volatile '<--- Neu muon gia tri thay doi khi bam F9
  On Error Resume Next
  If Amount > Top - Bottom + 1 Then Amount = Top - Bottom + 1
  With CreateObject("Scripting.Dictionary")
    Do
      .Add Int(Rnd() * (Top - Bottom + 1)) + Bottom, ""
    Loop Until .Count = Amount
    UniqueRandomNum = WorksheetFunction.Transpose(.Keys)
  End With
End Function

Em xin được hỏi thuật toán dùng chỗ này.
- Nhưng còn đoạn * (Top - Bottom + 1)) + Bottom: em chưa hiểu chỗ này.


Chỉ giúp em nhé
 
Lần chỉnh sửa cuối:
Em có xem một hàm của anh NDU như sau

PHP:
Function UniqueRandomNum(Bottom As Long, Top As Long, Amount As Long)
  'Application.Volatile '<--- Neu muon gia tri thay doi khi bam F9
  On Error Resume Next
  If Amount > Top - Bottom + 1 Then Amount = Top - Bottom + 1
  With CreateObject("Scripting.Dictionary")
    Do
      .Add Int(Rnd() * (Top - Bottom + 1)) + Bottom, ""
    Loop Until .Count = Amount
    UniqueRandomNum = WorksheetFunction.Transpose(.Keys)
  End With
End Function

Em xin được hỏi thuật toán dùng chỗ này.
- Nhưng còn đoạn * (Top - Bottom + 1)) + Bottom: em chưa hiểu chỗ này.


Chỉ giúp em nhé
Hỏi ngược lại:
Trên bảng tính, nếu người ta yêu cầu bạn dùng hàm RAND để tạo 1 số ngẫu nhiên trong khoảng từ 4 đến 10, bạn sẽ làm thế nào
Làm được tự nhiên sẽ hiểu thuật toán dạng tổng quát
 
Upvote 0
Web KT

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

Back
Top Bottom