您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 铜陵分类信息网,免费分类信息发布

求一算法!解决办法

2025/3/24 18:37:31发布6次查看
求一算法!!
现有一区间:$start--$end  (例:5--10)。
给一变量$param:
如果$param如果$param>$end  则$param=$end
不用if else,三元 等逻辑算法(虽然简单并且效率也高)
求实现此要求的数学算法
分享到:
------解决方案--------------------
真的可以做到吗?
答案是肯定的。否则我也不会将他置顶了
我先来个抛砖引玉
function foo($a, $b, $c) {
$f1 = -(($c - $a) >> 31);
$f2 = -(($b - $c) >> 31);
$f3 = 1 ^ ($f1 + $f2);
return $f1 * max($a, $c) + $f2 * min($b, $c) + $f3 * $c;
}
echo foo(5, 10, 3); //5
echo foo(5, 10, 8); //8
echo foo(5, 10, 13); //10

------解决方案--------------------
function foo($a, $b, $c) {
return (((($c-$a) + (($c-$a) >> 31)) ^ (($c-$a) >> 31)) - ((($c-$b) + (($c-$b) >> 31)) ^ (($c-$b) >> 31)) + $a + $b) / 2;
}
echo foo(20, 30, 50); // 30

这没用任何函数拉。
我去求经得到的,
算法有待研究。
------解决方案--------------------
引用:真的可以做到吗?
答案是肯定的。否则我也不会将他置顶了
我先来个抛砖引玉
php code
function foo($a, $b, $c) {
  $f1 = -(($c - $a) >> 31);
  $f2 = -(($b - $c) >> 31);
  $f3 = 1 ^ ($f1 + $f2);
  return $f1 * max($a, $c) + $f2 * min(……
不懂php...但是这个答案提示也太明显了
于是写个c版本int的..
#include
int middle(int a,int b,int c)
{
    long long la=a;
    long long lb=b;
    long long lc=c;

铜陵分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录