Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 17

Chủ đề: Cần giúp đỡ về sử dụng hàm RAND()

  1. #1
    developers Guest

    Cần giúp đỡ về sử dụng hàm RAND()

    MÌnh lấy tạm 1 VD như sau:
    -Mình cần lập 1 bảng số liêu về Thời gian học và Thời gian chơi của 100 người trong 1 tuần(168h)( học +chơi có thể bằng 168h)
    -Mình định dùng hàm RAND() trong khoảng 0-168 cho 2 cột Học và Chơi nhưng Làm thế nào để sau khi lấy tổng lại không vượt quá 168
    Thanks mọi người[IMG]images/smilies/B47.gif[/IMG]

  2. #2
    trungtrinh Guest
    Trích dẫn Gửi bởi MDmem
    MÌnh lấy tạm 1 VD như sau:
    -Mình cần lập 1 bảng số liêu về Thời gian học và Thời gian chơi của 100 người trong 1 tuần(168h)( học +chơi có thể bằng 168h)
    -Mình định dùng hàm RAND() trong khoảng 0-168 cho 2 cột Học và Chơi nhưng Làm thế nào để sau khi lấy tổng lại không vượt quá 168
    Thanks mọi người[IMG]images/smilies/B47.gif[/IMG]
    Mình cao có 1,65 mét hè, hổng phải cao nhân, bạn thử cái này xem sao
    Nói "dzui" thôi nhé, đừng giận

  3. #3
    maruco Guest
    Trích dẫn Gửi bởi quangba226vn
    Mình không hiểu về hàm Rand lắm. Bạn có thể cho mình biết ý nghĩa của nó được không.
    Ví dụ của bạn là như thế nào?
    Thân!
    Hàm rand() trả về giá trị là một số thực ngẫu nhiên tứ 0 đến 1, trong đề bài muốn xuất hiện số ngẫu nhiên từ 0 đến 168 nên trong công thức mình chỉ lấy phần nguyên của số thực ngẫu nhiên từ 0 đến 1 * 168
    - To MDmen:
    Riêng vấn đề của bạn đặt ra mình thấy có mâu thuẫn: cột thứ nhất lấy số ngẫu nhiên tư 0 đến 168, cột thứ hai cũng vậy mà tổng 2 cột không được lớn hơn 168 thì hơi bị ...vô lý, nên mình chỉ cho cột thứ hai là một số ngẫu nhiên trong khoảng 168 - số ngẫu nhiên của cột thứ nhất. Còn cột thứ 3, thứ 4 .. bạn thử là biết liền chứ gì
    Thân

  4. #4
    vinhdaixuong Guest
    Con cò già có nhận thấy rằng tổng của 2 cột đạt yêu cầu không vượt quá 168, nhưng không bao giờ đạt đúng 168 không?
    167 là tối đa hà cò ơi. Thiếu 1 tí tôm tép rồi.
    ________________

    Bên công thức thôi, bên VBA thì đúng.

  5. #5
    ngocpt Guest
    Trích dẫn Gửi bởi concogia
    Hàm rand() trả về giá trị là một số thực ngẫu nhiên tứ 0 đến 1, trong đề bài muốn xuất hiện số ngẫu nhiên từ 0 đến 168 nên trong công thức mình chỉ lấy phần nguyên của số thực ngẫu nhiên từ 0 đến 1 * 168
    Có chút sai lầm anh à!
    Hàm RAND() trả về giá trị là số thực từ 0 đến nhỏ hơn 1
    Vì vậy, nếu anh muốn tạo số ngẫu nhiên từ 0 đến 168 thì công thức phải là:
    =INT(RAND()*169)
    Tổng quát: Để tạo số nguyên ngẫu nhiên từ a đến b (a < b) thì công thức sẽ là:
    =INT(RAND()*(b - a + 1)) + a

  6. #6
    phamtienquan93 Guest
    Trích dẫn Gửi bởi ndu96081631
    Có chút sai lầm anh à!
    Hàm RAND() trả về giá trị là số thực từ 0 đến nhỏ hơn 1
    Vì vậy, nếu anh muốn tạo số ngẫu nhiên từ 0 đến 168 thì công thức phải là:
    =INT(RAND()*169)
    Tổng quát: Để tạo số nguyên ngẫu nhiên từ a đến b (a < b) thì công thức sẽ là:
    =INT(RAND()*(b - a + 1)) + a
    Cám ơn 2 Thầy Ptm và Ndu, mình sử dụng từ chưa chuẩn, đúng ra phải nói là : kết quả trả về là số ngẫu nhiên nằm ở khoảng giữa 0 và 1
    Trong cái hàm tự tạo mình đã cộng 1 vào nó "zồi" để nó có thể ra kết quả tối đa là 168, nhưng nghĩ lại rủi ngẫu nhiên "thằng" cột 1 nó ra 168 thì cột 2 nó ra cái chi chi, lại sai yêu cầu của bài nên khi dùng công thức mình chỉ cho nó tới 167 thôi là lý do như vậy
    Làm như Thầy Ndu là đúng rồi, mình nghĩ chưa tới cái đó, cột 1 mà 168 thì cột 2 bằng 0 cũng đúng đề bài
    Qua cái bài ngẫu nhiêu này, ngẫu nhiên học được thêm vài cái ngẫu nhiên
    Hôm nào phải cụng "zí" Thầy Ptm một phát

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Thanks các bác.Mình làm tổng của 4 cột rồi dựa trên hàm =thu của bác concogia .Nhưng mà cột tổng thì phải đến trên 90% là ra gần 168(toàn 16x với 15x) Như thế chưa ngẫu nhiên cho lắm.Các bác xem có cách nào xử lý cái này không nhỉ

  8. #8
    lamdh8x Guest
    Trích dẫn Gửi bởi concogia
    Mình cao có 1,65 mét hè, hổng phải cao nhân, bạn thử cái này xem sao
    Nói "dzui" thôi nhé, đừng giận
    Nếu ko phải là 2 cột mà tổng của 4 cột thì mình chỉ cần thêm :
    Cột 3=thu(168-A1-B1)
    Cột 4 =thu(168-A1-B1-C1)
    đúng không bác

  9. #9
    hoanghaidng Guest

    cột tổng thì phải đến trên 90% là ra gần 168
    phải đến 90% là bạn muốn trên 90%, hay bạn muốn rải đều từ 1x đến 15x?
    Muốn chia bớt xuống dưới thì nhân thêm 1 lần Rand() nữa.

    nghía qua cái hàm RandBetween 1 cái nữa nha.

    Còn muốn 100% có tổng 168 thì dễ òm à. Cột cuối lấy 168 trừ mấy số kia cộng lại, 1 phát ra ngay.

  10. #10
    Hong_Linh Guest

    Còn phân kia mình nhận thấy Tổng càng thấp đi thì số người càng ít.
    Thống kê 100 người thì hơi ít để có thể kết luận.
    Tuy vậy có thể tăng số người trong mức tổng thấp lên bằng cách dựa vào nguyên lý tăng rất chậm của hàm luỹ thừa trong phạm vi (0, 0.5) và tăng nhanh hơn trong khoảng (0.5, 1). Số mũ càng lớn, sự khác biệt càng nhiều.

    <div class="size_fullsize"></div>

    K2=INT(RAND()^5*(169-SUM($J2:J2)))

    Fill Right to N2, then Fill Down

    See attached file.

Trang 1 của 2 12 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
  •