số nguyên ngẫu nhiên javascript. Số ngẫu nhiên

Rất thường xuyên, các phép tính trong JavaScript không cho kết quả chính xác như chúng ta mong muốn. Tất nhiên, chúng ta có thể làm bất cứ điều gì chúng ta muốn với các con số - làm tròn lên hoặc xuống, đặt phạm vi, cắt những số không cần thiết đến một số vị trí thập phân nhất định, tất cả phụ thuộc vào việc bạn muốn làm gì với con số này trong tương lai. Tại sao làm tròn là cần thiết? Một trong những khía cạnh thú vị của JavaScript là nó không thực sự lưu trữ số nguyên, chúng tôi làm việc ngay với các số dấu phẩy động. Điều này, kết hợp với thực tế là nhiều giá trị phân số không thể được biểu thị bằng một số hữu hạn vị trí thập phân, trong JavaScript, chúng ta có thể nhận được kết quả như sau:

0.1 * 0.2; > 0.020000000000000004 0.3 - 0.1 > 0.19999999999999998
Đối với các mục đích thực tế, sự thiếu chính xác này không thành vấn đề, trong trường hợp của chúng tôi, chúng tôi đang nói về lỗi tính bằng triệu phần, tuy nhiên, điều này có thể khiến một số người thất vọng. Chúng ta có thể có được một vài kết quả lạ và khi làm việc với các số đại diện cho giá trị tiền tệ, tỷ lệ phần trăm hoặc kích thước tệp. Để sửa những điểm không chính xác này, chúng ta chỉ cần làm tròn kết quả và đặt độ chính xác thập phân là đủ.

Làm tròn số có công dụng thực tế, chúng ta có thể đang thao tác một số trong phạm vi nào đó, ví dụ: chúng ta muốn làm tròn giá trị đến số nguyên gần nhất thay vì chỉ làm việc với phần thập phân.

Làm tròn số thập phân Để cắt bỏ số thập phân, hãy sử dụng phương thức toFixed hoặc toPrecision. Cả hai đều lấy một đối số duy nhất chỉ định tương ứng có bao nhiêu chữ số có nghĩa (nghĩa là tổng số chữ số được sử dụng trong số) hoặc vị trí thập phân (số sau dấu thập phân) mà kết quả sẽ bao gồm:
  • Nếu một đối số không được xác định cho toFixed() thì nó sẽ mặc định là bằng 0, nghĩa là 0 chữ số thập phân, đối số có giá trị tối đa là 20.
  • Nếu không có đối số nào được đưa ra cho toPrecision thì số đó sẽ không bị ảnh hưởng
  • đặt randNum = 6,25; randNum.toFixed(); > "6" Math.PI.toPrecision(1); > "3" randNum = 87,335; randNum.toFixed(2); > "87,33" randNum = 87,337; randNum.toPrecision(3); > "87,3"
    Cả hai phương thức toFixed() và toPrecision() đều trả về biểu diễn chuỗi của kết quả chứ không phải số. Điều này có nghĩa là khi tính tổng một giá trị được làm tròn bằng randNum, nó sẽ tạo ra một chuỗi nối chứ không phải là tổng các số:

    Đặt RandNum = 6,25; hãy làm tròn = randNum.toFixed(); // "6" console.log(randNum + round); > "6.256"
    Nếu bạn muốn kết quả là kiểu số data, thì bạn sẽ cần áp dụng phân tích cú pháp:

    Đặt RandNum = 6,25; hãy làm tròn = parsingFloat(RandNum.toFixed(1)); console.log(làm tròn); > 6.3
    Xin lưu ý rằng các giá trị 5 được làm tròn trừ một số trường hợp hiếm hoi.

    Các phương thức toFixed() và toPrecision() rất hữu ích vì chúng không chỉ có thể cắt phần phân đoạn, mà còn để thêm các chữ số thập phân, thuận tiện khi làm việc với tiền tệ:

    Đặt WholeNum = 1 Đặt DollarCents = WholeNum.toFixed(2); console.log(dollarCents); > "1,00"
    Lưu ý rằng toPrecision sẽ tạo ra kết quả theo ký hiệu khoa học nếu số lượng số nguyên lớn hơn độ chính xác:

    Đặt num = 123,435 num.toPrecision(2); > "1.2e+2"

    Cách tránh lỗi làm tròn số thập phân Trong một số trường hợp, toFixed và toPrecision làm tròn giá trị 5 xuống và lên:

    Đặt numTest = 1,005; numTest.toFixed(2); > "1,00"
    Kết quả của phép tính trên phải là 1,01 chứ không phải 1. Nếu bạn muốn tránh lỗi tương tự, chúng ta có thể sử dụng giải pháp do Jack L Moore đề xuất, sử dụng số mũ để tính toán:

    Hàm round(giá trị, số thập phân) ( return Number(Math.round(value+"e"+decimals)+"e-"+decimals); )
    Hiện nay:

    Vòng(1.005,2); > 1,01
    Nếu bạn muốn một giải pháp mạnh mẽ hơn giải pháp được hiển thị ở trên, bạn có thể truy cập MDN.

    Làm tròn epsilon bằng máy Một phương pháp thay thế để làm tròn số thập phân đã được giới thiệu trong ES6. Làm tròn epsilon của máy cung cấp một mức sai số hợp lý khi so sánh hai số dấu phẩy động. Nếu không làm tròn, các so sánh có thể tạo ra kết quả tương tự như sau:

    0,1 + 0,2 === 0,3 > sai
    Chúng tôi sử dụng Math.EPSILON trong hàm của mình để có được sự so sánh hợp lệ:

    Hàm epsEqu(x, y) ( return Math.abs(x - y)< Number.EPSILON * Math.max(Math.abs(x), Math.abs(y)); }
    Hàm nhận hai đối số: đối số đầu tiên là phép tính hiện tại, đối số thứ hai là kết quả mong đợi. Nó trả về một so sánh của hai:

    EpsEqu(0,1 + 0,2, 0,3) > đúng
    Tất cả các trình duyệt hiện đại đều đã hỗ trợ ES6 hàm toán học nhưng nếu bạn muốn được hỗ trợ trong các trình duyệt như IE 11, hãy sử dụng polyfill.

    Cắt bỏ phần phân số Tất cả các phương pháp trình bày ở trên đều có thể làm tròn đến số thập phân. Để cắt một số thành hai chữ số thập phân, trước tiên bạn phải nhân số đó với 100, sau đó chia kết quả thu được cho 100:

    Hàm truncated(num) ( return Math.trunc(num * 100) / 100; ) truncated(3.1416) > 3.14
    Nếu bạn muốn điều chỉnh phương thức này cho phù hợp với bất kỳ số vị trí thập phân nào, bạn có thể sử dụng phủ định kép theo bit:

    Hàm bị cắt ngắn(num, số thập phân) ( let numPowerConverter = Math.pow(10, số thập phân); return ~~(num * numPowerConverter)/numPowerConverter; )
    Hiện nay:

    Đặt randInt = 35,874993; cắt ngắn(randInt,3); > 35.874

    Làm tròn đến số gần nhất Để làm tròn số thập phân lên số lên hoặc xuống gần nhất, bất kể số nào gần nhất với chúng ta, hãy sử dụng Math.round():

    Math.round(4.3) > 4 Math.round(4.5) > 5
    Lưu ý rằng "một nửa giá trị", 0,5 được làm tròn thành mặt lớn theo các quy luật của toán học.

    Làm tròn xuống số nguyên gần nhất Nếu bạn muốn luôn làm tròn xuống, hãy sử dụng Math.floor:

    Math.floor(42.23); > 42 Math.floor(36,93); > 36
    Xin lưu ý rằng làm tròn xuống có tác dụng với tất cả các số, kể cả số âm. Hãy tưởng tượng một tòa nhà chọc trời có vô số tầng, bao gồm cả các tầng ở tầng dưới cùng (biểu thị số âm). Nếu bạn đang ở trong thang máy mức độ thấp hơn trong khoảng từ 2 đến 3 (đại diện cho giá trị -2,5), Math.floor sẽ đưa bạn đến -3:

    Math.floor(-2.5); > -3
    Nhưng nếu bạn muốn tránh tình huống tương tự, sử dụng Math.trunc , được hỗ trợ trong tất cả trình duyệt hiện đại(ngoại trừ IE/Edge):

    Math.trunc(-41.43); > -41
    Trên MDN, bạn sẽ tìm thấy một polyfill sẽ cung cấp hỗ trợ cho Math.trunc trong trình duyệt và IE/Edge.

    Làm tròn đến số nguyên gần nhất Mặt khác, nếu bạn luôn cần làm tròn, hãy sử dụng Math.ceil. Một lần nữa, hãy nhớ thang máy vô hạn: Math.ceil sẽ luôn "lên", bất kể số đó có âm hay không:

    Math.ceil(42.23); > 43 Toán.ceil(36,93); > 37 Toán.ceil(-36,93); > -36

    Làm tròn lên/xuống số cần thiết Nếu chúng ta muốn làm tròn đến bội số gần nhất của 5, cách dễ nhất là tạo một hàm chia số đó cho 5, làm tròn số đó rồi nhân số đó với cùng một số:

    Hàm roundTo5(num) ( return Math.round(num/5)*5; )
    Hiện nay:

    RoundTo5(11); > 10
    Nếu bạn muốn làm tròn đến bội số của giá trị của mình, chúng tôi sử dụng nhiều hơn chức năng chung, đi vào nó giá trị ban đầu và nhiều:

    Hàm roundToMultiple(num, multiple) ( return Math.round(num/multiple)*multiple; )
    Hiện nay:

    Đặt số ban đầu = 11; đặt bội số = 10; roundToMultiple(initialNumber, multiple); > 10;

    Cố định một số trong một phạm vi Có nhiều trường hợp chúng ta muốn nhận giá trị x nằm trong một phạm vi. Ví dụ: chúng ta có thể cần một giá trị từ 1 đến 100, nhưng cuối cùng chúng ta lại có giá trị là 123. Để khắc phục điều này, chúng ta có thể sử dụng min (trả về giá trị nhỏ nhất trong một tập hợp số) và max (trả về giá trị lớn nhất trong bất kỳ tập hợp nào). của các số). Trong ví dụ của chúng tôi, phạm vi là từ 1 đến 100:

    Đặt lowBound = 1; đặt highBound = 100; đặt numInput = 123; let kẹp = Math.max(lowBound, Math.min(numInput, highBound)); console.log(đã được kẹp); > 100;
    Một lần nữa, chúng ta có thể sử dụng lại thao tác và gói toàn bộ nội dung vào một hàm bằng cách sử dụng giải pháp do Daniel X. Moore đề xuất:

    Number.prototype.clamp = function(min, max) ( return Math.min(Math.max(this, min), max); );
    Hiện nay:

    NumInput.clamp(lowBound, highBound); > 100;

    Làm tròn Gaussian Làm tròn Gaussian, còn được gọi là làm tròn ngân hàng, liên quan đến việc làm tròn đến số chẵn gần nhất. Phương pháp làm tròn này hoạt động không có lỗi thống kê. Quyết định tốt nhấtđược đề xuất bởi Tim Down:

    Hàm gaussRound(num, số thập phân) ( let d = số thập phân || 0, m = Math.pow(10, d), n = +(d ? num * m: num).toFixed(8), i = Math.floor (n), f = n - i, e = 1e-8, r = (f > 0,5 - e && f< 0.5 + e) ? ((i % 2 == 0) ? i: i + 1) : Math.round(n); return d ? r / m: r; }
    Hiện nay:

    GaussRound(2.5) > 2 gaussRound(3.5) > 4 gaussRound(2.57,1) > 2.6
    Thập phân trong CSS:

    Vì JavaScript thường được sử dụng để tạo ánh xạ vị trí cho các phần tử HTML, nên bạn có thể tự hỏi điều gì sẽ xảy ra nếu chúng ta tạo giá trị thập phân cho các phần tử của mình:

    #box ( chiều rộng: 63.667731993px; )
    Tin vui là các trình duyệt hiện đại sẽ tôn trọng các giá trị thập phân trong mô hình khối, bao gồm cả đơn vị phần trăm hoặc pixel.

    Sắp xếp Rất thường xuyên, chúng ta cần sắp xếp một số thành phần, ví dụ: chúng ta có một mảng các bản ghi trò chơi và chúng phải được sắp xếp theo thứ tự giảm dần của thứ hạng người chơi. Không may thay, phương pháp chuẩn Sort() có một số hạn chế đáng ngạc nhiên: nó hoạt động tốt với các từ tiếng Anh thông dụng, nhưng ngay lập tức bị hỏng khi gặp số, ký tự duy nhất hoặc từ viết hoa. Sắp xếp theo thứ tự ABC Có vẻ như việc sắp xếp một mảng theo thứ tự abc là một công việc đơn giản:

    Để trái cây = ["bí đỏ", "mơ", "dưa đỏ"]; trái cây.sort(); > "mơ", "bí ngô", "dưa đỏ"]
    Tuy nhiên, chúng ta gặp phải vấn đề ngay khi một trong các phần tử viết hoa:

    Để trái cây = ["bí đỏ", "mơ", "Dưa đỏ"]; trái cây.sort(); > "Dưa đỏ", "mơ", "bí ngô"]
    Điều này là do, theo mặc định, bộ sắp xếp sẽ so sánh ký tự đầu tiên được biểu thị bằng Unicode. Unicode là mã duy nhất cho bất kỳ biểu tượng nào, bất kể nền tảng, bất kể chương trình, bất kể ngôn ngữ. Ví dụ: nếu bạn nhìn vào bảng mã, ký tự “a” có giá trị U+0061 (trong hệ thập lục phân 0x61), trong khi ký tự "C" có mã U+0043 (0x43), mã này xuất hiện sớm hơn trong bảng Unicode so với ký tự "a".

    Để sắp xếp một mảng có thể chứa các chữ cái đầu tiên viết hoa hỗn hợp, chúng ta cần tạm thời chuyển đổi tất cả các phần tử thành chữ thường hoặc xác định thứ tự sắp xếp bằng phương thức localeCompare() với một số đối số. Theo quy định, trong trường hợp như vậy, tốt hơn là tạo ngay một hàm để sử dụng nhiều lần:

    Hàm alphaSort(arr) ( arr.sort(function (a, b) ( return a.localeCompare(b, "en", ("độ nhạy": "base")); )); ) let Fruit = ["butternut bí ", "mơ", "Dưa đỏ"]; alphaSort(trái cây) >
    Nếu bạn muốn mảng được sắp xếp theo thứ tự bảng chữ cái đảo ngược, chỉ cần hoán đổi vị trí của a và b trong hàm:

    Hàm alphaSort(arr) ( arr.sort(function (a, b) ( return b.localeCompare(a, "en", ("độ nhạy": "base")); )); ) let Fruit = ["butternut bí ", "mơ", "Dưa đỏ"]; alphaSort(trái cây) > ["Dưa đỏ", "bí ngô", "mơ"]
    Điều đáng chú ý là localeCompare được sử dụng với các đối số, chúng ta cũng cần nhớ rằng nó được hỗ trợ bởi IE11+, đối với các phiên bản IE cũ hơn, chúng ta có thể sử dụng nó mà không cần đối số và ở dạng chữ thường:

    Hàm caseSort(arr) ( arr.sort(function (a, b) ( return a.toLowerCase().localeCompare(b.toLowerCase()); )); ) let Fruit = ["bí ngô", "quả mơ", "Dưa lưới"]; caseSort(trái cây) > ["quả mơ", "bí ngô", "Dưa đỏ"]

    Sắp xếp theo số Tất cả điều này không áp dụng cho ví dụ mà chúng ta đã nói ở trên về mảng bản ghi trò chơi. Với một số mảng số, việc sắp xếp hoạt động tốt, nhưng tại một số điểm, kết quả có thể không thể đoán trước được:

    Để điểm cao = ; highScores.sort(); >
    Vấn đề là phương thức Sort() thực hiện so sánh từ điển: có nghĩa là các số sẽ được chuyển đổi thành một chuỗi và việc so sánh sẽ lại được thực hiện bằng cách khớp ký tự đầu tiên của chuỗi đó theo thứ tự các ký tự trong bảng Unicode . Do đó, một lần nữa chúng ta cần xác định thứ tự sắp xếp của mình:

    Để điểm cao = ; highScores.sort(function(a,b) ( return a - b; )); >
    Một lần nữa, để sắp xếp các số thành thứ tự ngược lại, hoán đổi vị trí của a và b trong hàm.

    Sắp xếp cấu trúc giống JSON Cuối cùng, nếu chúng ta có cấu trúc dữ liệu giống JSON được biểu diễn dưới dạng một mảng bản ghi trò chơi:

    Đặt điểm = [ ("name": "Daniel", "score": 21768 ), ("name": "Michael", "score": 33579 ), ("name": "Alison", "score": 38395 ) ];
    Trong ES6+, bạn có thể sử dụng các hàm mũi tên:

    Scores.sort((a, b) => b.score - a.score));
    Đối với các trình duyệt cũ hơn không có hỗ trợ này:

    Scores.sort(function(a, b) ( return a.score - b.score ));
    Như bạn có thể thấy, việc sắp xếp trong JavaScript là một điều khá mơ hồ, tôi hy vọng rằng những ví dụ này bằng cách nào đó sẽ giúp cuộc sống trở nên dễ dàng hơn.

    Làm việc với các hàm lũy thừa Phép lũy thừa là một phép toán ban đầu được định nghĩa là kết quả của phép nhân lặp lại số tự nhiên về bản thân nó, căn bậc hai của a là số cho a khi bình phương. Chúng ta có thể sử dụng các chức năng này liên tục trong Cuộc sống hàng ngày trong các bài học toán, bao gồm tính diện tích, thể tích hay thậm chí là mô hình vật lý.

    Trong JavaScript, hàm lũy thừa được biểu diễn dưới dạng Math.pow(), trong tiêu chuẩn ES7 mới nó đã được giới thiệu nhà điều hành mới lũy thừa - " * * ".

    Để tăng lũy ​​thừa của một số, hãy sử dụng hàm Math.pow(), trong đó đối số đầu tiên là số sẽ được nâng lên lũy thừa, đối số thứ hai là số mũ:

    Math.pow(3,2) > 9
    Dạng ký hiệu này có nghĩa là 3 bình phương, hoặc 3 × 3, dẫn đến kết quả là 9. Tất nhiên, có thể đưa ra một ví dụ khác:

    Math.pow(5,3); > 125
    Nghĩa là, 5 lập phương, hay 5 × 5 × 5, bằng 125.

    ECMAScript 7 tiếp theo Phiên bản JavaScript, về nguyên tắc, chúng ta có thể sử dụng toán tử lũy thừa mới được đề xuất - * *, dạng ký hiệu này có thể mang tính mô tả hơn:

    3 ** 2 > 9
    TRÊN khoảnh khắc này Hỗ trợ cho toán tử này khá hạn chế nên việc sử dụng nó không được khuyến khích.

    Chức năng nguồn có thể hữu ích nhất trong Những tình huống khác nhau. Một ví dụ đơn giản, tính số giây trong một giờ: Math.pow (60,2).

    Căn bậc hai và căn bậc ba Math.sqrt() và Math.cbrt() đối lập với Math.pow(). Như chúng ta nhớ, căn bậc hai của a là số cho a khi bình phương.

    Math.sqrt(9) > 3
    Đồng thời, căn bậc ba của a là số cho kết quả khi nâng lên thành lập phương.

    Math.cbrt(125) > 5
    Math.cbrt() mới chỉ được đưa vào đặc tả JavaScript gần đây và do đó chỉ được hỗ trợ trong các trình duyệt hiện đại: Chrome 38+, Firefox và Opera 25+ và Safari 7.1+. Bạn sẽ nhận thấy rằng trình duyệt web IE không có trong danh sách này, nhưng bạn sẽ tìm thấy polyfill trên MDN.

    Tất nhiên, chúng ta có thể sử dụng các giá trị không nguyên trong một trong các hàm sau:

    Math.pow(1.25, 2); > 1.5625 Math.cbrt(56.57) > 3.8387991760286138
    Xin lưu ý rằng điều này cũng hoạt động khá tốt khi sử dụng các giá trị đối số âm:

    Math.pow(-5,2) > 25 Math.pow(10,-2) > 0,01
    Tuy nhiên, điều này sẽ không hoạt động đối với căn bậc hai:

    Math.sqrt(-9) > NaN
    Từ phân tích toán học chúng ta biết rằng theo số ảo chúng ta muốn nói đến căn bậc hai của số âm. Và điều này có thể dẫn chúng ta tới một kỹ thuật khác để làm việc với số phức, nhưng đó lại là một câu chuyện khác.

    Bạn có thể sử dụng phân số trong Math.pow() để tìm căn bậc hai và căn bậc ba của các số. Căn bậc hai sử dụng số mũ 0,5:

    Math.pow(5, 0,5); // = Math.sqrt(5) = 5 ** (1/2) > 2.23606797749979
    Tuy nhiên, do tính sai lệch của dấu phẩy động, bạn không thể đoán chính xác kết quả chính xác:

    Math.pow(2.23606797749979,2) > 5.000000000000001
    Trong những tình huống như vậy, bạn sẽ phải dùng đến cách cắt bỏ các dấu hiệu khỏi số hoặc làm tròn đến một giá trị nào đó.

    Một số, bởi không rõ lý do JavaScript nhầm lẫn hàm Math.pow() với Math.exp() , đây là hàm mũ cho các số nói chung. Lưu ý: trong tiếng anh"exponent" được dịch là "số mũ", vì vậy điều này có nhiều khả năng áp dụng cho những người nói tiếng Anh hơn, mặc dù có những tên thay thế cho số mũ, chẳng hạn như chỉ số, lũy thừa.

    Hằng số toán học Làm việc với toán học trong JavaScript được thực hiện dễ dàng hơn nhờ một số hằng số tích hợp. Các hằng số này là thuộc tính của đối tượng Math. Điều đáng chú ý là các hằng số được viết bằng chữ hoa chứ không phải ký hiệu CamelCase.

    Chỉ những người dùng đã đăng ký mới có thể tham gia khảo sát. , Vui lòng.

    Thẻ: Thêm thẻ

    Về mặt kỹ thuật thuật ngữ "máy phát điện" Số ngẫu nhiên" - điều này thật vô lý, vì bản thân các con số không phải là ngẫu nhiên. Ví dụ: 100 có phải là số ngẫu nhiên không? Còn 25 thì sao? Ý nghĩa thực sự của thuật ngữ này là nó tạo ra một dãy số xuất hiện ngẫu nhiên. Điều này đặt ra một câu hỏi khó hơn: dãy số ngẫu nhiên là gì? Câu trả lời đúng duy nhất: dãy số ngẫu nhiên là dãy trong đó tất cả các phần tử không liên quan với nhau. Định nghĩa này dẫn đến một nghịch lý là bất kỳ chuỗi nào cũng có thể là ngẫu nhiên hoặc không ngẫu nhiên, tùy thuộc vào cách thu được chuỗi đó. Ví dụ, hàng tiếp theo con số
    1 2 3 4 5 6 7 8 9 0
    đã được nhận bằng cách in dòng trên cùng bàn phím theo thứ tự, do đó trình tự không thể được coi là được tạo ngẫu nhiên. Nhưng điều gì sẽ xảy ra nếu bạn nhận được trình tự tương tự khi lấy những quả bóng tennis được đánh số ra khỏi thùng. TRONG trong trường hợp nàyđây đã là một chuỗi được tạo ngẫu nhiên. Ví dụ này cho thấy tính ngẫu nhiên của một chuỗi phụ thuộc vào cách nó có được chứ không phụ thuộc vào chính nó.

    Hãy nhớ rằng dãy số do máy tính tạo ra có tính xác định: mỗi số ngoại trừ số đầu tiên đều phụ thuộc vào các số trước nó. Về mặt kỹ thuật, điều này có nghĩa là máy tính chỉ có thể tạo ra một chuỗi số gần như ngẫu nhiên, tức là. trên thực tế chúng không thực sự ngẫu nhiên. Tuy nhiên, điều này là đủ cho hầu hết các nhiệm vụ và để đơn giản, các chuỗi như vậy sẽ được gọi là ngẫu nhiên. Một phương pháp rất thú vị được phát triển bởi John von Neumann; nó thường được gọi là căn bậc hai. Trong phương pháp này, số ngẫu nhiên trước đó được bình phương và sau đó các chữ số ở giữa được trích ra từ kết quả. Ví dụ: nếu bạn đang tạo các số có ba chữ số và số trước đó là 121 thì bình phương nó sẽ cho kết quả 14641. Việc tách ba chữ số ở giữa sẽ cho số ngẫu nhiên tiếp theo là 464. Nhược điểm của phương pháp này là nó có rất khoảng thời gian lặp lại ngắn gọi là chu kỳ. Vì lý do này phương pháp này ngày nay không được sử dụng Phương pháp hiện đại Việc tạo số ngẫu nhiên khó khăn hơn nhiều.

    Số ngẫu nhiên trong PHP

    PHP có hai nhóm hàm để làm việc với các số ngẫu nhiên. Hoàn toàn bên ngoài, chúng có thể được phân biệt bằng tiền tố mt_ cho tất cả các chức năng của một trong các nhóm.

    Các tính năng không được dùng nữa
    chức năng rand. Trả về một số nguyên từ 0 đến giá trị RAND_MAX (là 32767). Có thể có hai tham số nguyên tùy chọn - nếu chúng được chỉ định, một số ngẫu nhiên sẽ được tạo từ tham số đầu tiên đến tham số thứ hai.

    Tiếng vang rand(); echo rand(1.100); // Đưa ra một số ngẫu nhiên từ 1 đến 100

    Chức năng srand. Chỉ định chuỗi các số ngẫu nhiên được tạo bởi hàm rand. Có toàn bộ tham số - khi những nghĩa khác nhau Với tham số này Rand sẽ cho ra các dãy số khác nhau. Hàm srand chỉ cần được gọi một lần trước khi thực hiện tất cả các lệnh gọi tới hàm rand. Ví dụ sử dụng:

    Srand(1288); // Khởi tạo bộ tạo số ngẫu nhiên for($i=0; $i