php 随机函数概率

PHP随机函数概率

在PHP中,有很多种生成随机数的函数,常见的有rand()和mt_rand()函数。这些函数都可以生成随机数,但是我们需要考虑到随机数的分布概率,即每个数字出现的概率是否相等。

rand()函数是PHP自带的基本随机数生成函数,可以生成一个在指定范围内的随机整数。它的语法如下:

```php

int rand ( int $min , int $max )

```

其中,$min表示随机数的最小值,$max表示随机数的最大值。需要注意的是,使用rand()函数生成的随机数并不是真正的随机数,它使用的是伪随机数生成算法。这个算法会根据一个种子(seed)来生成一个数列,这个数列看上去像是随机数,但实际上是确定的,只要给定相同的种子,就会生成相同的数列。默认情况下,rand()函数使用的种子是当前的系统时间。

相比之下,mt_rand()函数的随机数分布更为均匀。mt_rand()函数是Mersenne Twister算法生成的随机数,能够生成更高质量的随机数,而且速度更快。它的语法如下:

```php

int mt_rand ( int $min , int $max )

```

可以看到,mt_rand()函数和rand()函数的语法是一模一样的。但是,mt_rand()函数的生成随机数的分布概率更加均匀,每个数字出现的概率都接近于相等。

PHP添加水印函数

在Web开发中,图片处理是不可避免的一部分。其中,添加水印是一项常见的需求,可以降低图片被盗用的风险,也可以为图片增添标识等信息。在PHP中,可以使用GD扩展来实现图片处理的功能。GD扩展是一个开源的图像处理库,可以用来创建、读取和修饰图片,广泛应用于PHP的图像处理中。

下面是一个简单的添加水印的PHP函数:

```php

function watermark($src_path, $watermark_path, $save_path) {

//创建图像资源句柄

$src_res = imagecreatefromjpeg($src_path);

$watermark_res = imagecreatefrompng($watermark_path);

//获取图像资源句柄的宽高

$src_width = imagesx($src_res);

$src_height = imagesy($src_res);

$watermark_width = imagesx($watermark_res);

$watermark_height = imagesy($watermark_res);

//计算水印图片的位置

$pos_x = ($src_width - $watermark_width) / 2;

$pos_y = ($src_height - $watermark_height) / 2;

//合并图像

imagecopy($src_res, $watermark_res, $pos_x, $pos_y, 0, 0, $watermark_width, $watermark_height);

//保存图像

imagejpeg($src_res, $save_path);

//销毁图像资源句柄

imagedestroy($src_res);

imagedestroy($watermark_res);

}

```

这个函数接收三个参数:原图路径、水印图路径和保存路径。首先,通过imagecreatefromjpeg()和imagecreatefrompng()函数创建原图和水印图的资源句柄。接着,使用imagesx()和imagesy()函数获取各个图像资源句柄的宽高,然后计算出水印图片在原图中的位置。最后,使用imagecopy()函数将水印图片和原图合并,并使用imagejpeg()函数将合成后的图像保存到指定路径。最后还要别忘了销毁所有的图像资源句柄。

需要注意的是,这个函数只支持将水印图添加到JPEG图片中,如果要添加到其他格式的图片中,需要修改创建图像资源句柄的函数,比如imagecreatefromgif()和imagecreatefrombmp()等函数。另外,如果要增加水印的透明度,可以使用imagecopymerge()函数。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(20) 打赏

评论列表 共有 1 条评论

¤香草天空¤ 1年前 回复TA

好运满仓,祝你吉星高照。

立即
投稿
发表
评论
返回
顶部