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将数组中的元素用空白的字符连接成字符串,即拼接数组成为一个字符串
* $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的主要内容,如果未能解决你的问题,请参考以下文章
数组排序,不满三位数值的按照原来的位数进行比较,超过三位的取后面三位进行比较