-
2014-05-26 18:39:40
最近碰到一个需求,一个一级分类加一个数值,其下的二级分类要平均的得到相应的数值。
于是,第一想法是,谷姐度娘一下,没找到PHP方面类似的方法。
就自己弄出来个这样的算法,不知道有没有谁写过。
<?php /** * 将一个数值切成N份 * @param int $number 切的数值 * @param int $avgNumber 份数 * @return array */ function numberAvg($number, $avgNumber) { if($number == 0) { $array = array_fill(0, $avgNumber, 0); } else { $avg = floor($number / $avgNumber); $ceilSum = $avg * $avgNumber; $array = array(); for($i = 0; $i < $avgNumber; $i++) { if($i < $number - $ceilSum) { array_push($array, $avg + 1); } else { array_push($array, $avg); } } } return $array; } echo '<pre>';print_r(numberAvg(13, 10));
得到数据如下Array ( [0] => 2 [1] => 2 [2] => 2 [3] => 1 [4] => 1 [5] => 1 [6] => 1 [7] => 1 [8] => 1 [9] => 1 )
更多相关内容 -
php仿微信红包分配算法的实现方法
2020-12-18 13:17:20本文实例讲述了php仿微信红包分配算法的实现方法。分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @param int $money 用于分配的金额 * @param int $num 分配人数 */ ... -
微信随机生成红包金额算法php版
2020-12-18 16:18:14最近在研究发红包的功能,于是写了个红包的生成算法。 红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的... -
滑动平均算法
2019-11-21 12:08:23这里提到的滑动平均滤波算法对于实时采样的一些单片机,传感器之类的,要对实时动态获取的所有值做一个求平均的运算,当然这里所说的实时数据的平均值要有一个步长(比如说最近20次最新取值算平均)。如果取N个采样...这里提到的滑动平均滤波算法对于实时采样的一些单片机,传感器之类的,要对实时动态获取的所有值做一个求平均的运算,当然这里所说的实时数据的平均值要有一个步长(比如说最近20次最新取值算平均)。如果取N个采样值求平均,存储区中必须开辟N个数据的暂存区。每新采集一个数据便存入暂存区中,同时去掉一个最老数据,保存这N个数据始终是最新更新的数据。采用环型队列结构可以方便地实现这种数据存放方式。
两个循环遍历两个判断清空
程序代码如下: char value_buff[N]; //N相当于选定一个窗口大小,对窗口数据做平均! char i=0; char filter() { char count; int sum=0; value_buff[i++]=get_data; //get_data为实时获取的数据 if(i==N) i=0; //当数据大于数组长度,替换数据组的一个数据 相当于环形队列更新,先进先出! if(count==5)sum=0; //注意清空和 for(count=0;count<N;count++) sum+=value_buff[count]; return (char)(sum/N); }
-
PHP实现的随机红包算法示例
2020-12-20 05:34:14本文实例讲述了PHP实现的随机红包算法。分享给大家供大家参考,具体如下: 一、整体设计 算法有很多种, 可以自行选择, 主要的”架构” 是这样的, 用redis decr()命令去限流, 用mysql去记录各种需要的数据 二、红包... -
一致性哈希算法以及其PHP实现详细解析
2020-12-19 08:37:58典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务。 常用的算法是对hash结果取余数 (hash() mod N):对机器编号从0到N-1,按照自定义... -
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2020-12-18 05:41:42本文实例讲述了PHP四种排序算法实现及效率分析。分享给大家供大家参考,具体如下: PHP的四种基本排序算法为:冒泡排序、插入排序、选择排序和快速排序。 下面是我整理出来的算法代码: 1. 冒泡排序: 思路:对数组... -
使用PHP实现二分查找算法代码分享
2021-01-20 00:50:16【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 【算法思想】首先,将表中间位置记录... -
微信红包随机生成算法php版
2020-12-19 12:34:21想了想,自己写写php版的微信红包随机生成算法,能不能实现类似的功能(其实也不敢说是算法)。 // $bonus_total 红包总金额 // $bonus_count 红包个数 // $bonus_type 红包类型 1=拼手气红包 0=普通红包 function... -
PHP实现常用排序算法(含示意动图)
2021-03-01 16:22:42本文将依次介绍一些常用的排序算法,以及PHP实现。快速排序是由东尼·霍尔发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速... -
PHP数据分析引擎计算余弦相似度算法示例
2020-12-19 23:41:30本文实例讲述了PHP数据分析引擎计算余弦相似度算法。分享给大家供大家参考,具体如下: 关于余弦相似度的相关介绍可参考百度百科:余弦相似度 <?php /** * 数据分析引擎 * 分析向量的元素 必须和基准向量的... -
JS及PHP代码编写八大排序算法
2020-11-22 16:21:33但是自从应付完考试之后就再也没有练习过,当在开发的时候也是什么时候使用什么时候去查一下,现在在学习JavaScript,趁这个时间再把各种基础算法整理一遍,分别以JS和PHP语法的方式编写代码。 1.冒泡排序 原理:... -
PHP有序表查找之插值查找算法示例
2020-10-18 17:54:18主要介绍了PHP有序表查找之插值查找算法,简单分析了插值查找算法的概念、原理并结合实例形式分析了php实现针对有序表插值查找的相关操作技巧,需要的朋友可以参考下 -
PHP实现常用排序算法的方法
2020-12-19 22:59:58本文主要介绍了一些常用的排序算法,以及PHP的代码实现等,希望对您能有所帮助。 本文来自于awaimai.com,由火龙果软件Luca编辑推荐。 作为phper,一般接触算法的编程不多。 但基本的排序算法还是应该掌握。 毕竟算法... -
PHP 平均拆分数组算法
2017-11-15 11:46:33public function chunk($list, $num) { $temp = []; //判断数组 if (!is_array($list)) { return false; } //判断数量是否小于列数 小于 直接返回第一列 if (count($listlist=数据 num = 拆分的列数
public function chunk($list, $num) { $temp = []; //判断数组 if (!is_array($list)) { return false; } //判断数量是否小于列数 小于 直接返回第一列 if (count($list) < $num) { return $temp[] = $list; } //向上取整 $argv = ceil(count($list) / $num); //循环切片 for ($i = 1; $i <= $num; $i++) { $temp[$i] = array_slice($list, $argv * ($i - 1), $argv); } return $temp; }
-
php-perl哈希算法实现(times33哈希算法)
2020-10-26 11:20:34php-perl哈希实现算法–DJBX33A(Daniel J. Bernstein, Times 33 with Addition)APR哈希默认算法 -
排序算法之PHP版快速排序、冒泡排序
2021-01-20 01:22:21在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构... -
light-tips:有关算法,php等的一些代码提示:fire:
2021-02-02 12:47:26收藏请点star,如发现有错误欢迎PR数据结构和算法算法排序简单排序搜索/查找二分搜索树表查找算法最快时间复杂度平均时间复杂度最坏时间复杂度空间复杂度是否稳定冒泡排序Ω(n) Θ(n2) O(n2) O(1)稳定插入... -
PHP快速排序算法实现的原理及代码详解
2020-10-17 05:34:13在本篇文章里小编给大家整理了关于PHP快速排序算法实现的原理及代码相关知识点,需要的朋友们跟着学习下。 -
去极限平均值+加权+递归平均滤波算法
2020-05-02 00:00:23原文链接:http://www.itdoy.com/index.php/post/22.html 头文件:itdoy_FilterData.h C #ifndef __ITDOY_FILTERDATA_H__ #define __ITDOY_FILTERDATA_H__ #define FilterDataNumber 5 #define ...原文链接:http://www.itdoy.com/index.php/post/22.html
头文件:itdoy_FilterData.h
C
#ifndef __ITDOY_FILTERDATA_H__ #define __ITDOY_FILTERDATA_H__ #define FilterDataNumber 5 #define RecurrenceNumber 10 typedef struct { float Data[FilterDataNumber]; float LastResult; float RecurrenceData[RecurrenceNumber]; float RecurrenceState; float Result; }FilterData_Struct; extern void itdoy_FilterData(FilterData_Struct * filter_data);//组合实现:去除极限平均值+加权+递归平均数据滤波 #endif
源文件:itdoy_FilterData.c
C
#include "itdoy_FilterData.h" float RemoveLimitAverage(FilterData_Struct * filter_data)//去除极限值并求平均值 { int i = 0; float max_data = 0; float min_data = 0; float sum = 0; float average = 0; max_data = filter_data->Data[0]; min_data = filter_data->Data[0]; for(i = 0; i < FilterDataNumber; i++) { if(filter_data->Data[i] > max_data) max_data = filter_data->Data[i]; else if(filter_data->Data[i] < min_data) min_data = filter_data->Data[i]; sum = sum + filter_data->Data[i]; } sum = sum - max_data - min_data; average = sum / (FilterDataNumber - 2); return average; } float AddWeight(FilterData_Struct * filter_data)//依据变化幅度进行加权 { float temp = 0; float weight = 0; float weight_data = 0; temp = RemoveLimitAverage(filter_data); if(temp > filter_data->LastResult) { weight = (temp - filter_data->LastResult) / filter_data->LastResult; } else { weight = (filter_data->LastResult - temp) / filter_data->LastResult; } weight_data = weight * temp; return weight_data; } float RecurrenceAverage(FilterData_Struct * filter_data)//对数据进行递归平均 { int i =0; float sum = 0; float average = 0; if(RecurrenceState < (RecurrenceNumber - 1)) { RecurrenceState++; } else { RecurrenceState = 0; } filter_data->RecurrenceData[RecurrenceState] = AddWeight(filter_data); for(i = 0; i < RecurrenceNumber; i++) { sum = sum + filter_data->RecurrenceData[i]; } average = sum / RecurrenceNumber; return average; } void itdoy_FilterData(FilterData_Struct * filter_data)//组合实现:去除极限平均值+加权+递归平均数据滤波 { RecurrenceAverage(filter_data); }
-
数据结构与算法 - PHP
2019-12-19 10:04:16学习数据结构和算法, 并且结合PHP, 了解PHP背后实现的原理. 2.学习/操作 暂见:https://xueyuanjun.com/books/data-structure-and-algorithms 后续补充 ... 3.问题 TBD ... -
图片搜索图片,基于php实现的图片相似搜索类,优化了感知算法(hash)不准确的问题
2018-09-05 14:43:00这是因为颜色沿着一个非线性标尺 - 改变其中“平均值”的位置,并因此改变哪些高于/低于平均值的比特数。一个更健壮的算法叫pHash,(我使用的是自己改进后的算法,但概念是一样的) pHash的做法是将均值的方法发挥到... -
PHP从页面提取正文类库—Textractor
2022-04-29 21:19:34... 正文提取采用了基于文本密度的提取算法,支持从压缩的HTML文档中提取正文,每个页面平均提取时间为30ms,正确率在95%以上。 特色 标签无关,提取正文不依赖标签;...核心算法简洁高效,平均提取时间在30ms左右。 -
微信的抢红包算法PHP版
2021-01-24 16:19:55微信红包算法的核心是:每次随机的基础是剩余金额除以剩余个数得到的平均值的两倍。 class Test { public $remainSize = 20; public $remainMoney = '10.00'; public $min = '0.01'; public $scale = 2; ... -
php中计算二维数组平均值/分组平均值实例
2021-03-25 10:26:58今天给大家转一个不错的数组平均值算法函数,这个主要是针对二维数据值的算法,各位有需要了朋友可参考。计算数组平均值 二维数组平均值计算 分组计算平均值 代码如下 复制代码 $array = array(array('class' => ...