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

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

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