Trang 3 của 4 Đầu tiênĐầu tiên 1234 CuốiCuối
Kết quả 21 đến 30 của 33

Chủ đề: làm sao giá trị thay đổi ngẫu nhiên nhưng tổng không đổi?

  1. #21
    tddhcm148 Guest
    Trích dẫn Gửi bởi chuot0106
    Nói như vậy chắc chắn thầy đã có đáp án rồi!
    Chưa làm, chỉ cảm giác thôi nhưng tôi nghĩ là được
    Thật ra bài gần gần giống vậy đã từng có đầy trên diễn đàn rồi
    Bởi vậy tôi thường khuyên các bạn nên viết code (hoặc công thức) sao cho tổng quát nhất, có thể áp dụng cho nhiều trường hợp nhất, để mai này còn đem áp dụng cho các bài tương tự chứ không nên viết code mà chỉ để áp dụng cho một bài duy nhất (uổng công lắm)

  2. #22
    ngocpt Guest
    Trích dẫn Gửi bởi HYen17
    Trên cửa sổ "Immediate", nếu ta nhập

    ?0.9999*9\1
    Nó cho ta kết quả 9 tròn trịa đó bạn.

    Mà thật ra không có số 9 xuất hiện lần nào trong 65500 lần lặp cũng không ảnh hưởng gì đến hòa bình thế giới cả.
    [IMG]images/smilies/a44.gif[/IMG] [IMG]images/smilies/a44.gif[/IMG] [IMG]images/smilies/a44.gif[/IMG]
    ĐÚng rồi bác ạ, em nhầm. Em tưởng \1 cũng tương đương với INT, thực tế không phải.
    Còn dùng 1 vòng lặp thì như bài 7 em làm bằng công thức rồi.

    Mã:
    Sub a()
        Dim i, n, s, Tong
        Randomize
        n = Range("A1:J1").Count
        Tong = [K1]
        If Tong > n Then Exit Sub
        Cells(1, 1) = IIf(Tong < n, Int(2 * Rnd), 1)
        For i = 2 To n
            s = Application.WorksheetFunction.Sum(Range("A1").Resize(, i - 1))
            Cells(1, i) = IIf(s < Tong, IIf(n - i - 1 > Tong - s, Int(2 * Rnd), 1), 0)
        Next
    End Sub

  3. #23
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Hau151978
    ĐÚng rồi bác ạ, em nhầm. Em tưởng \1 cũng tương đương với INT, thực tế không phải.
    Còn dùng 1 vòng lặp thì như bài 7 em làm bằng công thức rồi.

    <div class="bbcode_container">
    <div class="bbcode_description">Code:
    </div>
    </div>
    Nếu không cho dùng WorksheetFunction luôn thì sao? [IMG]images/smilies/a01.gif[/IMG]

  4. #24
    zphot9x Guest
    Trích dẫn Gửi bởi ndu96081631
    Nếu không cho dùng WorksheetFunction luôn thì sao? [IMG]images/smilies/a01.gif[/IMG]
    thay vòng lặp thành
    For i = 2 To n
    s = s+Cells(1,i-1)
    Cells(1, i) = IIf(s < Tong, IIf(n - i - 1 > Tong - s, Int(2 * Rnd), 1), 0)
    Next

  5. #25
    maruco Guest

    làm sao giá trị thay đổi ngẫu nhiên nhưng tổng không đổi?

    Mình có một tổng (ô K2) là cố định, các giá trị từ A2 đến J2 là 0 hoặc 1. Làm thế nào để các giá trị ngày thay đổi ngâũ nhiên nhưng tổng A2:J2 không đổi và bẳng giá trị ô K2 cho trước.

    mong được giúp đỡ

  6. #26
    ngochoang7978 Guest
    Trích dẫn Gửi bởi Hau151978
    thay vòng lặp thành
    For i = 2 To n
    s = s+Cells(1,i-1)
    Cells(1, i) = IIf(s < Tong, IIf(n - i - 1 > Tong - s, Int(2 * Rnd), 1), 0)
    Next
    Nên thêm dòng Randomize trước khi dùng hàm Rnd() mới chuẩn
    Bạn có thể thí nghiệm có hoặc không có dòng code màu đỏ để thấy sự khác biệt

  7. #27
    nguyenhuuhiep9x Guest
    Trích dẫn Gửi bởi ndu96081631
    Nên thêm dòng Randomize trước khi dùng hàm Rnd() mới chuẩn
    Bạn có thể thí nghiệm có hoặc không có dòng code màu đỏ để thấy sự khác biệt
    Randomize thì em đã có ở đầu code rồi, vậy vẫn chưa đủ hả bác?

  8. #28
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi solecao
    Mình có một tổng (ô K2) là cố định, các giá trị từ A2 đến J2 là 0 hoặc 1. Làm thế nào để các giá trị ngày thay đổi ngâũ nhiên nhưng tổng A2:J2 không đổi và bẳng giá trị ô K2 cho trước.

    mong được giúp đỡ
    Xài hàm RANDBETWEEN ấy bạn.

  9. #29
    hienpq Guest
    Trích dẫn Gửi bởi giangleloi
    Xài hàm RANDBETWEEN ấy bạn.
    nhưng điều kiện là tổng không đổi và bằng giá trị K2 bạn!

  10. #30
    olala Guest
    làm như thế, chắc để dùng để hỗ trợ kê khai thuế thì phải [IMG]images/smilies/a01.gif[/IMG]

Trang 3 của 4 Đầu tiênĐầu tiên 1234 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •