首页 > 开发 > PHP > 正文

php获取指定范围内最接近数的方法

2024-05-04 23:35:50
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了php获取指定范围内最接近数的方法,可实现根据给定区间长度划分各个区间,并在其中寻找与给定数最接近的数,需要的朋友可以参考下

本文实例讲述了php获取指定范围内最接近数的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. // Returns the next higher or lower number 
  2. function NextRelatedNumber($number, $range){  
  3. $r = $number % $range; 
  4. $f = $number - $r; 
  5. $b = round($r / $range, 0); 
  6. return ($b == 1) ? $f + $range : $f;  
  7. } 
  8. // Returns the next higher number 
  9. function NextHigherNumber($number, $range){  
  10. $r = $number % $range; 
  11. $f = $number - $r; 
  12. $b = ceil($r / $range); 
  13. return ($b == 1) ? $f + $range : $f;  
  14. } 
  15. // Returns the next lower number 
  16. function NextLowerNumber($number, $range){  
  17. $r = $number % $range; 
  18. $f = $number - $r; 
  19. $b = floor($r / $range); 
  20. return ($b == 1) ? $f + $range : $f;  
  21. } 
  22. // Returns the next related number from an array 
  23. function NextNumberArray($Number, $NumberRangeArray){ 
  24. $w = 0; 
  25. $c = -1; 
  26. $abstand = 0; 
  27. $l = count($NumberRangeArray);  
  28. for($pos=0; $pos < $l; $pos++){ 
  29. $n = $NumberRangeArray[$pos]; 
  30. $abstand = ($n < $Number) ? $Number - $n : $n - $Number; 
  31. if ($c == -1){ 
  32. $c = $abstand; 
  33. continue; 
  34. } 
  35. else if ($abstand < $c){ 
  36. $c = $abstand; 
  37. $w = $pos; 
  38. } 
  39. } 
  40. return $NumberRangeArray[$w]; 
  41. } 
  42.  
  43. // Examples 
  44. // -------- 
  45. // 0 10 20 30 40 50 ... 
  46. print 'NextRelatedNumber: '; 
  47. print NextRelatedNumber(44, 10) . "/n"; 
  48. // returns --> 40 
  49. // 0 20 40 60 80 100 ... 
  50. print 'NextHigherNumber: '; 
  51. print NextHigherNumber(41, 20) . "/n"; 
  52. // returns --> 60 
  53. // 0 5 10 15 20 25 30 35 ... 
  54. print 'NextLowerNumber: '; 
  55. print NextLowerNumber(57, 5) . "/n"; 
  56. // returns --> 55 
  57. // Example with Array 
  58. print 'NextNumberArray: '; 
  59. print NextNumberArray(45, array(3, 8, 19, 34, 56, 89)) . "/n"; 
  60. // returns --> 34 
  61. // (45 is between 34 and 56 but 34 is the next) 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表