phpで競馬のオッズを想定してマイナスが出ないプログラムを簡単にかきたいです。
プログラム自体はかけたのですがどうも長いです。
流れとしては
賭けれる馬が7頭いると想定してそれぞれの倍率(オッズ)を入力します。
次にそれをブラウザで出力すると7頭それぞれに賭けるべき金額が算出されます。
競馬では100円単位で賭け金を決めれるので初めは全馬に100円賭けたとしています。
例)
馬3頭がいてそれぞれのオッズが
1番:2.0倍
2番:2.5倍
3番:8.0倍だとすれば
馬が3頭なので初めの賭け金合計(total)は300円です。
ここからfor文をまわしていきます。
1番の馬のオッズは2倍なので払戻金(back)は200円
total > backとなる場合は損するので賭け金を上げます。
賭け金を100円から200円に上げるとbackは400円
ここで賭け金を100円上げたのでtotalは300円から400円になります。
total = backとなりますのでもう一度ループしてもらいます。
これを繰り返して全部の馬に対してtotal < backとなるような賭け方を算出します。
以下プログラムです、長いですがほとんど同じことの繰り返しなのでどこをどうしたら簡単にかけるのかご教授頂きたいです。
わかりにくい文章で申し訳ありませんがよろしくお願いいたします。
php
1 2<html xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5</head> 6<body> 7<?php 8header("Content-Type: text/html; charset=UTF-8"); 9//それぞれに賭ける賭け金(100円スタート) 10 $bet = array(); 11 for($i=0;$i<7;$i++){ $bet[$i]=100; } 12 $odds = array(); 13 $odds[0]=2.1; 14 $odds[1]=3.5; 15 $odds[2]=5.7; 16 $odds[3]=6.5; 17 $odds[4]=68.6; 18 $odds[5]=70.1; 19 $odds[6]=127.2; 20//合計賭け金 21 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 22//払い戻し額 23 $back[0] = $bet[0]*$odds[0]; 24//5000回以上ループが続く場合終了する 25 for($i=0;$i < 5000 ;$i++){ 26 if($total[0]>$back[0]){ 27 $bet[0] = $bet[0] + 100; 28 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 29 $back[0] = $bet[0]*$odds[0]; 30 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 31 $back[1] = $bet[1]*$odds[1]; 32 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 33 $back[2] = $bet[2]*$odds[2]; 34 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 35 $back[3] = $bet[3]*$odds[3]; 36 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 37 $back[4] = $bet[4]*$odds[4]; 38 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 39 $back[5] = $bet[5]*$odds[5]; 40 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 41 $back[6] = $bet[6]*$odds[6]; 42 43 }elseif($total[1]>$back[1]){ 44 $bet[1] = $bet[1] + 100; 45 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 46 $back[0] = $bet[0]*$odds[0]; 47 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 48 $back[1] = $bet[1]*$odds[1]; 49 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 50 $back[2] = $bet[2]*$odds[2]; 51 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 52 $back[3] = $bet[3]*$odds[3]; 53 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 54 $back[4] = $bet[4]*$odds[4]; 55 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 56 $back[5] = $bet[5]*$odds[5]; 57 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 58 $back[6] = $bet[6]*$odds[6]; 59 }elseif($total[2]>$back[2]){ 60 $bet[2] = $bet[2] + 100; 61 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 62 $back[0] = $bet[0]*$odds[0]; 63 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 64 $back[1] = $bet[1]*$odds[1]; 65 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 66 $back[2] = $bet[2]*$odds[2]; 67 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 68 $back[3] = $bet[3]*$odds[3]; 69 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 70 $back[4] = $bet[4]*$odds[4]; 71 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 72 $back[5] = $bet[5]*$odds[5]; 73 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 74 $back[6] = $bet[6]*$odds[6]; 75 76 }elseif($total[3]>$back[3]){ 77 $bet[3] = $bet[3] + 100; 78 79 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 80 $back[0] = $bet[0]*$odds[0]; 81 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 82 $back[2] = $bet[2]*$odds[2]; 83 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 84 $back[1] = $bet[1]*$odds[1]; 85 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 86 $back[3] = $bet[3]*$odds[3]; 87 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 88 $back[4] = $bet[4]*$odds[4]; 89 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 90 $back[5] = $bet[5]*$odds[5]; 91 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 92 $back[6] = $bet[6]*$odds[6]; 93 94 }elseif($total[4]>$back[4]){ 95 $bet[4] = $bet[4] + 100; 96 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 97 $back[0] = $bet[0]*$odds[0]; 98 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 99 $back[1] = $bet[1]*$odds[1]; 100 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 101 $back[2] = $bet[2]*$odds[2]; 102 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 103 $back[3] = $bet[3]*$odds[3]; 104 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 105 $back[4] = $bet[4]*$odds[4]; 106 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 107 $back[5] = $bet[5]*$odds[5]; 108 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 109 $back[6] = $bet[6]*$odds[6]; 110 }elseif($total[5]>$back[5]){ 111 $bet[5] = $bet[5] + 100; 112 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 113 $back[0] = $bet[0]*$odds[0]; 114 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 115 $back[1] = $bet[1]*$odds[1]; 116 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 117 $back[2] = $bet[2]*$odds[2]; 118 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 119 $back[3] = $bet[3]*$odds[3]; 120 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 121 $back[4] = $bet[4]*$odds[4]; 122 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 123 $back[5] = $bet[5]*$odds[5]; 124 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 125 $back[6] = $bet[6]*$odds[6]; 126 127 }
文字制限で入りきりませんでした、つづきます
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/11 16:23
2015/10/11 16:27
2015/10/11 16:35