Chào các cậu
Trong blog này, tôi sẽ cho bạn biết cách tạo 4 chữ số số ngẫu nhiên duy nhất. Chúng tôi là hàm ngẫu nhiên sử dụng trong PHP để tạo 4 số ngẫu nhiên. Bạn có thể dễ dàng tạo 4 chữ số ngẫu nhiên duy nhất trong PHP.
Chúng tôi hiển thị tạo 4 chữ số Ví dụ số ngẫu nhiên duy nhất. Bạn có thể tạo số ngẫu nhiên bốn chữ số trong PHP.
Tôi sẽ hiển thị hai hàm khác nhau để tạo 4 số ngẫu nhiên. Trước khi tạo 4 số ngẫu nhiên duy nhất cho hàm mt_rand [] và thứ hai tạo 4 số ngẫu nhiên duy nhất cho chức năng rand [].
Ở đây ví dụ sau đây của các số ngẫu nhiên duy nhất tạo 4 chữ số
ví dụ 1
Ở đây, hàm MT_RAND []
Ví dụ 2
Ở đây hàm ví dụ Rand [] sử dụng các số ngẫu nhiên duy nhất tạo 4 chữ số
Nó sẽ giúp bạn..
#PHPPHP
Thích bài viết này? Theo dõi tôi trên Twitter và Facebook. Bạn cũng có thể đăng ký nguồn cấp dữ liệu RSS.
82
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi cần tạo một số ngẫu nhiên với x số lượng chữ số.
Vì vậy, hãy nói x là 5, tôi cần một số để được ví dụ. 35562 Nếu x là 3, thì nó sẽ ném lại một cái gì đó giống như; 463
Ai đó có thể cho tôi thấy điều này được thực hiện như thế nào?
Đã hỏi ngày 21 tháng 11 năm 2011 lúc 17:35Nov 21, 2011 at 17:35
user1022585user1022585user1022585
12.6K19 Huy hiệu vàng53 Huy hiệu bạc74 Huy hiệu đồng19 gold badges53 silver badges74 bronze badges
0
Bạn có thể sử dụng
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
5 cùng với $digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
6 để thực hiện điều này:$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
Điều này sẽ xuất ra một số từ 100 đến 999. Điều này bởi vì 10^2 = 100 và 10^3 = 1000 và sau đó bạn cần trừ nó với một để có được nó trong phạm vi mong muốn.
Nếu 005 cũng là một ví dụ hợp lệ, bạn sẽ sử dụng mã sau để đệm nó bằng các số 0 hàng đầu:
$digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
Đã trả lời ngày 21 tháng 11 năm 2011 lúc 17:38Nov 21, 2011 at 17:38
3
Dưới đây là một giải pháp đơn giản mà không có bất kỳ vòng lặp hoặc bất kỳ rắc rối nào cho phép bạn tạo chuỗi ngẫu nhiên với các ký tự, số hoặc thậm chí với các ký hiệu đặc biệt.
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
7trong đó
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
8 có thể là số chữ sốVí dụ.
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
9Kết quả sau một vài vụ hành quyết
98450
79324
23017
04317
26479
Bạn cũng có thể sử dụng cùng một mã để tạo chuỗi ngẫu nhiên, như thế này
$randomNum=substr[str_shuffle["0123456789abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ"], 0, $x];
Kết quả với
$digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
0FgHmqpTR3Ox
O9BsNgcPJDb
1v8Aw5b6H7f
haH40dmAxZf
0EpvHL5lTKr
Đã trả lời ngày 13 tháng 6 năm 2017 lúc 13:56Jun 13, 2017 at 13:56
Akshay Khaleakshay KhaleAkshay Khale
7.8818 Huy hiệu vàng49 Huy hiệu bạc58 Huy hiệu Đồng8 gold badges49 silver badges58 bronze badges
2
Bạn có thể sử dụng
$digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
1 cho mục đích chính xác đó.Để giới hạn các giá trị đối với các giá trị với các chữ số X, bạn có thể sử dụng các mục sau:
$x = 3; // Amount of digits
$min = pow[10,$x];
$max = pow[10,$x+1]-1];
$value = rand[$min, $max];
Đã trả lời ngày 21 tháng 11 năm 2011 lúc 17:37Nov 21, 2011 at 17:37
Halfanhalfdanhalfdan
32,8K8 Huy hiệu vàng76 Huy hiệu bạc86 Huy hiệu Đồng8 gold badges76 silver badges86 bronze badges
3
Đối xử với số của bạn như một danh sách các chữ số và chỉ nối một chữ số ngẫu nhiên mỗi lần:
function n_digit_random[$digits] {
$temp = "";
for [$i = 0; $i < $digits; $i++] {
$temp .= rand[0, 9];
}
return [int]$temp;
}
Hoặc một giải pháp số hoàn toàn:
function n_digit_random[$digits]
return rand[pow[10, $digits - 1] - 1, pow[10, $digits] - 1];
}
Đã trả lời ngày 21 tháng 11 năm 2011 lúc 17:37Nov 21, 2011 at 17:37
HalfanhalfdanBlender
32,8K8 Huy hiệu vàng76 Huy hiệu bạc86 Huy hiệu Đồng52 gold badges429 silver badges487 bronze badges
Đối xử với số của bạn như một danh sách các chữ số và chỉ nối một chữ số ngẫu nhiên mỗi lần:
0
Hoặc một giải pháp số hoàn toàn:0 to 999.
BlenderBlender5 digits.
281K52 Huy hiệu vàng429 Huy hiệu bạc487 Huy hiệu đồngMay 30, 2015 at 14:19
1
1
Cách đơn giản nhất tôi có thể nghĩ đến là sử dụng chức năng
$digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
2 với $digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
3Trong ví dụ trên, nó sẽ tạo ra số ngẫu nhiên trong phạm vi 0 đến 999.Nov 21, 2011 at 17:40
Và có 5 chữ số.♦animuson
Đã trả lời ngày 30 tháng 5 năm 2015 lúc 14:1928 gold badges139 silver badges145 bronze badges
4
Đã thử nghiệm ở đây.
benchmark:
2
Đã trả lời ngày 21 tháng 11 năm 2011 lúc 17:40
Animuson ♦ AnimusonFeb 21, 2017 at 16:36
52.8K28 Huy hiệu vàng139 Huy hiệu bạc145 Huy hiệu đồngAlex
4 hoạt động nhanh hơn x4 lần $digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
54 silver badges9 bronze badges$digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
1
Cả hai chức năng đều chạy trong 100000 lần lặp để làm cho kết quả rõ ràng hơn
3
Đã trả lời ngày 21 tháng 2 năm 2017 lúc 16:36Jun 19, 2019 at 11:22
AlexalexAnoop P S
3414 Huy hiệu bạc9 Huy hiệu đồng1 gold badge11 silver badges30 bronze badges
Vâng, bạn có thể sử dụng làm chức năng PHP đơn giản MT_RAND [2000,9000] có thể tạo số ngẫu nhiên 4 chữ số
4
Đã trả lời ngày 19 tháng 6 năm 2019 lúc 11:22Nov 21, 2011 at 17:39
Anoop p sanoop p sRene Pot
7041 Huy hiệu vàng11 Huy hiệu bạc 30 Huy hiệu Đồng7 gold badges67 silver badges91 bronze badges
0
Làm điều đó với một vòng lặp:
usage:
5
Trong ví dụ trên, nó sẽ tạo ra số ngẫu nhiên trong phạm vi 0 đến 999.Nov 21, 2011 at 17:40
Và có 5 chữ số.easyb
Đã trả lời ngày 30 tháng 5 năm 2015 lúc 14:191 silver badge8 bronze badges
1
6
Đã thử nghiệm ở đây.Mar 30, 2016 at 8:26
1
Đã trả lời ngày 21 tháng 11 năm 2011 lúc 17:40
Animuson ♦ Animuson
52.8K28 Huy hiệu vàng139 Huy hiệu bạc145 Huy hiệu đồng
$digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
4 hoạt động nhanh hơn x4 lần $digits = 3;
echo str_pad[rand[0, pow[10, $digits]-1], $digits, '0', STR_PAD_LEFT];
5Cả hai chức năng đều chạy trong 100000 lần lặp để làm cho kết quả rõ ràng hơn
Đã trả lời ngày 21 tháng 2 năm 2017 lúc 16:36
Alexalex2 gold badges16 silver badges39 bronze badges
3414 Huy hiệu bạc9 Huy hiệu đồngSep 4, 2019 at 9:43
Vâng, bạn có thể sử dụng làm chức năng PHP đơn giản MT_RAND [2000,9000] có thể tạo số ngẫu nhiên 4 chữ số
7
Đã trả lời ngày 19 tháng 6 năm 2019 lúc 11:22May 26, 2020 at 15:46
Anoop p sanoop p s
7041 Huy hiệu vàng11 Huy hiệu bạc 30 Huy hiệu ĐồngLàm điều đó với một vòng lặp:Dec 18, 2014 at 10:08
Susantha7Susantha7Susantha7
Đã trả lời ngày 21 tháng 11 năm 2011 lúc 17:391 gold badge18 silver badges36 bronze badges
Rene Potren Pot
9
24.3K7 Huy hiệu vàng67 Huy hiệu bạc91 Huy hiệu Đồng
Đã trả lời ngày 19 tháng 3 năm 2015 lúc 9:37Mar 19, 2015 at 9:37
MrodriguesMrodriguesMRodrigues
1.78716 huy hiệu bạc21 Huy hiệu đồng16 silver badges21 bronze badges
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
0Đã trả lời ngày 18 tháng 2 năm 2017 lúc 15:31Feb 18, 2017 at 15:31
Chức năng này hoạt động hoàn hảo mà không có lặp lại và số chữ số mong muốn.
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
1Bạn có thể gọi chức năng và chuyển số chữ số chẳng hạn: ví dụ:
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
2Kết quả mẫu:
4957 8710 6730 6082 2987 2041 6721
Kịch bản gốc có từ ý chính này
Đã trả lời ngày 29 tháng 7 năm 2018 lúc 9:15Jul 29, 2018 at 9:15
Reagan Ochorareagan OchoraReagan Ochora
1.4671 Huy hiệu vàng18 Huy hiệu bạc19 Huy hiệu đồng1 gold badge18 silver badges19 bronze badges
Xin vui lòng không
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
5 không tạo ra giá trị an toàn về mặt mật mã theo các tài liệu://php.net/manual/en/function.rand.php
Hàm này không tạo ra các giá trị bảo mật bằng mã hóa và không nên được sử dụng cho mục đích mật mã. Nếu bạn cần một giá trị bảo mật bằng mã hóa, hãy xem xét sử dụng Random_int [], Random_Bytes [] hoặc OpenSSL_Random_Pseudo_Bytes [] thay thế.
Thay vào đó, tốt hơn là sử dụng
98450
79324
23017
04317
26479
5, có sẵn trên Php 7 [xem: //php.net/manual/en/function.random-int.php].Vì vậy, để mở rộng câu trả lời của @Marcus, bạn nên sử dụng:
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
3Lưu ý rằng sử dụng
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
5 là tốt nếu bạn không cần một số ngẫu nhiên an toàn.Đã trả lời ngày 23 tháng 8 năm 2018 lúc 10:10Aug 23, 2018 at 10:10
Yahya Uddinyahya UddinYahya Uddin
24.1K32 Huy hiệu vàng126 Huy hiệu bạc221 Huy hiệu đồng32 gold badges126 silver badges221 bronze badges
5
Mã sau đây tạo số ngẫu nhiên 4 chữ số:
$digits = 3;
echo rand[pow[10, $digits-1], pow[10, $digits]-1];
4Đã trả lời ngày 12 tháng 1 năm 2020 lúc 18:40Jan 12, 2020 at 18:40
1
Bạn thực sự thích làm phức tạp mọi thứ :]
Vấn đề thực sự là OP muốn, có lẽ, thêm vào đó vào cuối một số con số thực sự lớn. Nếu không, tôi không cần phải nghĩ đến điều đó. vì số không bên trái trong bất kỳ số nào là, tốt, các số 0 trái.
Vì vậy, chỉ cần nối phần lớn hơn của số đó dưới dạng tổng toán học chứ không phải chuỗi.
e.g.
98450
79324
23017
04317
26479
7đơn giản là trở thành
98450
79324
23017
04317
26479
8done.
Đã trả lời ngày 2 tháng 4 năm 2014 lúc 23:03Apr 2, 2014 at 23:03
GCBGCBgcb
13.4K7 Huy hiệu vàng67 Huy hiệu bạc90 Huy hiệu Đồng7 gold badges67 silver badges90 bronze badges
1