![]() |
cho mình hỏi cách tạo số ngẫu nhiên
mình muốn tạo một số ngẫu nhiên nằm trong 1 khoảng cho trước [a,b] cụ thể là [-2.5,+2.5]
dùng pic6f877a bạn nào có thể gợi ý cho mình được ko |
mình chỉ lấy số ngẫu nhiên có 1 chữ số hàng thập phân.
Mình nghĩ thế này ko biết đã ổn chưa đặt rand_max = 51 (vì hàm rand chỉ cho số nguyên dương) i = rand(); // i sẽ nhận giá trị ngẫu nhiên từ 0 đến 50. i = 25 - i; // i sẽ nhận giá trị từ -25 đến 25 i = i/10 //[-2.5,2.5] có vẻ không hay lắm , mình ko biết đc ko |
Về ý tưởng mình nghĩ OK.
Bạn chỉ cần chú ý về kiểu dữ liệu, vì rand() trả về kiểu số nguyên, trong khi bạn đang cần số thực. |
Đây là code tính random của CCS C - thư viện stdlib.h, mô phỏng 10 lần ra giá trị "ngẫu nhiên" chỉ có 1.
PHP Code:
|
Trích:
Uniform mang nghĩa dãy phân phối đều, tức là xác suất để các con số xuất hiện trong dãy là như nhau. Dãy pseudo-random phụ thuộc vào trạng thái ban đầu (seed), nếu tạo dãy với seed giống nhau thì kết quả lúc nào cũng như nhau. Để dãy gần với ngẫu nhiên thì seed cũng phải có tính ngẫu nhiên. Cách dễ nhất để có seed gần với ngẫu nhiên là lấy thời gian hiện tại. Với VDK có thể dùng RTC hoặc timer + các biến đếm để xác định thời gian trôi qua, sau đó tính toán các giá trị này và seed cho pseudo-random generator. |
Trích:
PHP Code:
|
vậy có ai huynh nào tóm tắt lại giùm em cách tạo 1 số ngẫu nhiên được không
em đang cần chọn ngẫu nhiên 1 số từ 1 tới 8 anh chỉ giùm em với em đang cần gấp lắm cám ơn nhiều |
Múi giờ GMT. Hiện tại là 01:27 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam