有1000塊錢,3個人按比例分,如何設計比較合理

來源:互聯網
上載者:User
請教大家一個問題, 具體是問題是這樣的,
1、有1000塊錢,A B C 3個人分最多可獲得的比例 是30% 40% 30%
2、如果A和B兩個人分 A 30% B 70%
3、如果B和C兩個人分 B 40% C 70%
4、若果只有一個人分 A 最多可以分30%
B最多可以分40%
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 "
";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%吧

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
)
Array
(
[a] => 300
[b] => 700
[c] => 0
)
Array
(
[a] => 0
[b] => 400
[c] => 600
)
Array
(
[a] => 300
[b] => 0
[c] => 0
)
Array
(
[a] => 0
[b] => 400
[c] => 0
)
Array
(
[a] => 0
[b] => 0
[c] => 700
)

這是什麼怪帳?
請說清楚點


不好意思啊,可能是我描敘的不太清楚,是這樣的:
有1000塊錢,A B C 3個人分最多可獲得的比例 是A30% B70% C100%
1、如果A,B,C3個人分,A分了30% 那麼B只能分70%-30% C只能分100%-(70%-30%)
2、如果B,C兩個人分, B可以分70% C分100%-70%
3,、依次類推 A,C 分,A,B分,,,,,,

幹掉A和B,C拿走跑路

這個意思?

function foo($u, $m=1000) {  if(! is_array($u)) $u = array($u);  echo join(',', $u), PHP_EOL;  $d = array('A' => 0.3, 'B' => 0.4, 'C' => 0.3);  foreach($u as $k) {    $r[$k] = $d[$k] * $m;    unset($d[$k]);  }  if(count($u) == 1 || count($d) == 0) return $r;  foreach($d as $v) $r[$k] += $v * $m;   return $r;}print_r(foo(array('A', 'B', 'C')));print_r(foo(array('A', 'B')));print_r(foo(array('A', 'C')));print_r(foo(array('B', 'C')));print_r(foo(array('B')));print_r(foo('C'));
A,B,CArray(    [A] => 300    [B] => 400    [C] => 300)A,BArray(    [A] => 300    [B] => 700)A,CArray(    [A] => 300    [C] => 700)B,CArray(    [B] => 400    [C] => 600)BArray(    [B] => 400)CArray(    [C] => 300)
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.