PHP随即生成6位数三位0-9三位a-z

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP随即生成6位数三位0-9三位a-z相关的知识,希望对你有一定的参考价值。

php随即生成6位数三位0-9三位a-z 6位数随即排列 不是那种三位数字三位字母连着的 希望能找到高手给解决下 在下把毕生积蓄倾囊奉献 谢谢 比如: 1Z23AS

参考技术A

以下函数可以实现随机生成6位数,且其中三位为数字,另外三位为小写字母:

function myRand()
    if(PHP_VERSION < '4.2.0')
        srand();
    
    $randArr = array();
    for($i = 0; $i < 3; $i++)
        $randArr[$i] = rand(0, 9);
        $randArr[$i + 3] = chr(rand(0, 25) + 97);
    
    shuffle($randArr);
    return implode('', $randArr);

解释:

    PHP_VERSION < '4.2.0'判断PHP的版本,在版本>=4.2.0时,rand函数会自动播种,不需要调用srand,故此处只有在低于4.2.0版本下需要播种

    rand函数会产生一个随机数,范围是两个参数之间的整数(包括边界),如rand(0,9)返回0~9中的任意一个(包括0和9)

    chr返回指定ascii码所代表的字符,97为a的ascii码,chr(rand(0, 25) + 97)返回a-z中任意一个字符

    shuffle函数会将数组的顺序打乱

    implode将数组中的元素用空白的字符连接成字符串,即拼接数组成为一个字符串

参考技术B <?php/**
* $length int 生成字符传的长度
* $numeric int ,$numeric = 0 随机数则是 大小写字符+ 数字... $numeric = 1 则为纯数字
*/
function random($length, $numeric = 0)
PHP_VERSION < '4.2.0' ? mt_srand ( ( double ) microtime () * 1000000 ) : mt_srand ();
$seed = base_convert ( md5 ( print_r ( $_SERVER, 1 ) . microtime () ), 16, $numeric ? 10 : 35 );
$seed = $numeric ? (str_replace ( '0', '', $seed ) . '012340567890') : ($seed . 'zZ' . strtoupper ( $seed ));
$hash = '';
$max = strlen ( $seed ) - 1;
for($i = 0; $i < $length; $i ++)
$hash .= $seed [mt_rand ( 0, $max )];

return $hash;

echo random(6);
?>
参考技术C * $length int 生成字符传的长度
* $numeric int ,$numeric = 0 随机数则是 大小写字符+ 数字... $numeric = 1 则为纯数字
*/
function random($length, $numeric = 0)
PHP_VERSION < '4.2.0' ? mt_srand ( ( double ) microtime () * 1000000 ) : mt_srand ();
$seed = base_convert ( md5 ( print_r ( $_SERVER, 1 ) . microtime () ), 16, $numeric ? 10 : 35 );
$seed = $numeric ? (str_replace ( '0', '', $seed ) . '012340567890') : ($seed . 'zZ' . strtoupper ( $seed ));
$hash = '';
$max = strlen ( $seed ) - 1;
for($i = 0; $i < $length; $i ++)
$hash .= $seed [mt_rand ( 0, $max )];

return $hash;

echo random(6);
?>

C语言输出一个五位数,万位和百位数字一样,前三位数字和为9,后两位

C语言输出一个五位数,万位和百位数字一样,前三位数字和为9,后两位数字和为8,输出所有满足上述条件的五位数,用编程来求…

参考技术A #define GET_BIT(num, n) (num/n%10)
int main()

    int i;
    for (i = 10000; i < 99999; i++) 
        if (GET_BIT(i, 10000) == GET_BIT(i, 100) &&
            GET_BIT(i, 10000)*2+GET_BIT(i, 1000) == 9 &&
            GET_BIT(i, 10)+GET_BIT(i, 1) == 8
        ) 
            printf("%d ", i);
        
    
    return 0;

参考技术B #include<stdio.h>
int main()

int a,b,c,d,e;
for(a=1;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
for(d=0;d<10;d++)
for(e=0;e<10;e++)
if(a==c && a+b+c==9 && d+e==8)
printf("%d%d%d%d%d\n",a,b,c,d,e);
return 0;

枚举法,暴力解题追问

for(a=1...)
还是for(a==1...)

追答

for(a=1...)

参考技术C for循环然后逐个比较就可以追问

可以把过程写下来吗,谢谢

参考技术D 1 #include <stdio.h>
2 int main()
3 int i, j;
4 for(i = 10000; i < 100000; i += 10000)
5 int first = i/ 10000;
6 if (first > 9/2) break;
7 int third = first;
8 int second = 9 - first - third;
9 for (j = 0; j <= 8; j++)
10 int fouth = j;
11 int fifth = 8 - j;
12 int result = first * 10000 + second * 1000 + third * 100 + fouth *10 +fifth;
13 printf("%d ", result);
14
15 printf("\n");
16
17
18 printf("\n");
19 return 0;
20

以上是关于PHP随即生成6位数三位0-9三位a-z的主要内容,如果未能解决你的问题,请参考以下文章

判断一个三位数的平方的后三位还是自己

数组排序,不满三位数值的按照原来的位数进行比较,超过三位的取后面三位进行比较

python3 随机生成6位数的验证码

万用表几位半理解

C语言 计算所有四位正整数,百位数为0,去掉百位数0可得到一个三位正整数,而该三位正整数乘以9等于原四位的正整数

C语言输出一个五位数,万位和百位数字一样,前三位数字和为9,后两位