ホームページ > バックエンド開発 > PHPチュートリアル > 1,000 元があり、それを 3 人で比例配分するにはどうすればよいでしょうか。

1,000 元があり、それを 3 人で比例配分するにはどうすればよいでしょうか。

WBOY
リリース: 2016-06-23 13:29:21
オリジナル
7112 人が閲覧しました

質問させてください、具体的な質問は次のとおりです、
1. 1,000 元があり、3 人 A、B、C が獲得できる最大割合は 30% 40% 30% です
2. A とB シェア A 30% B 70%
3. B と C でシェアする場合 40% C 70%
4. 1 人だけシェアする場合、A は 30% までシェア可能
C は 70% までシェア可能


ディスカッション(解決策)への返信

オブジェクト指向の考え方で実現できたらいいですね

どんな変なアカウントですか?

明確にしてください

私の理解です.... 最大分割できると言いましたが、それはお金が残せるという意味です(残せない場合は、30%、40%、30%の配分は間違っています)

$member=array('a','b','c');//$member=array('a','b');//$member=array('b','c');//$member=array('b');$res = allotment(1000,$member);echo "<pre class="brush:php;toolbar:false">";print_r($res);echo "
";function allotment($money,$member){ $ms = array('a','b','c'); $abc = array( 'a' => 30, 'b' => 40, 'c' => 30, ); $ab = array( 'a' => 30, 'b' => 70, ); $bc = array(//B 40% C 70% 一共就 110%了,所以c 改为 60% 'b' => 40, 'c' => 60, ); $one = array( 'a' => 30, 'b' => 40, 'c' => 70, ); $same = array_intersect($ms,$member); sort($same); $res=array(); if(count($same)==1){ $data[$same[0]] = $one[$same[0]]; }else{ $plan = join('',$same); $data = $$plan; } $used = 0; foreach($data as $k=>$v){ $rate = rand(1,$v); $res[$k]['rate']=$rate.'%';//百分比 $res[$k]['mon']=$money * ($rate / 100); $used += $res[$k]['mon']; } $res['r'] = $money - $used;//剩余钱 return $res;}
ログイン後にコピー

3. B と C が B 40% C 70% を共有する場合、これは B 40% C 60% になるはずです


<?php$result = assign(1000, 1, 2, 3);print_r($result);$result = assign(1000, 1, 2, 0);print_r($result);$result = assign(1000, 0, 2, 3);print_r($result);$result = assign(1000, 1, 0, 0);print_r($result);$result = assign(1000, 0, 2, 0);print_r($result);$result = assign(1000, 0, 0, 3);print_r($result);function assign($amount, $a=0, $b=0, $c=0){	if($amount==0 || $a==0 && $b==0 && $c==0){		return false;	}	if($a>0 && $b>0 && $c>0){		return array('a'=>$amount*0.3, 'b'=>$amount*0.4, 'c'=>$amount*0.3);	}	if($a>0 && $b>0 ){		return array('a'=>$amount*0.3, 'b'=>$amount*0.7, 'c'=>0);	}	if($b>0 && $c>0){		return array('a'=>0, 'b'=>$amount*0.4, 'c'=>$amount*0.6);	}	if($a>0){		return array('a'=>$amount*0.3, 'b'=>0, 'c'=>0);	}	if($b>0){		return array('a'=>0, 'b'=>$amount*0.4, 'c'=>0);	}	if($c>0){		return array('a'=>0, 'b'=>0, 'c'=>$amount*0.7);	}}?>
ログイン後にコピー



Array
(
[a] => 300
[b] => 400
[c] => 300
)
配列
(
[a] => 300
[b] => 700
[c] => 0
)
配列
(
[a] => 0
[b] => 400
[c] => 600
)
配列
(
[a] => 300
[b] => 0
[c] => 0
)
配列
(
[a] => 0
[b] => 400
[c] => 0
)
配列
(
[a] => 0
[b] => 0
[c ] => 700
)


この奇妙なアカウントは何ですか?

明確にしてください

申し訳ありませんが、私の説明があまり明確ではないかもしれませんが、次のようなものです:
1,000 元があり、3 人の A B C が獲得できる最大割合は A30% B70% C100% です
1. A の場合、B、C が 30% を共有すると、B は 70%-30% のみ、C は 100%-(70%-30%) のみを共有できます
2. B と C が 30% を共有する場合、B は次のように分割できます。 70%、Cは100%-70%に分けることができます
3、など、A、Cが分けられ、A、Bが分けられ、、、、、、
AとBを殺し、Cが奪って逃げる

これはどういう意味ですか? れーれーれー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート