Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言计算足球比赛结果的赔率#_C#_Probability - Fatal编程技术网

C# 用C语言计算足球比赛结果的赔率#

C# 用C语言计算足球比赛结果的赔率#,c#,probability,C#,Probability,我有一个问题,可能分为两个问题;我试图找到的数学理论的名称是什么?如何在C#中最有效地实现它 基本上,我的问题是,我在计算正确猜测5+游戏结果的累积概率 到目前为止,我构建程序的方式是将匹配及其各自的概率输入到系统中,此时代码将它们组合成一个列表,其中包含所有匹配、获胜者以及发生的概率;这是迭代完成的: foreach (var game in games) { gamesList.Add(new GameBet { Home = game.Home,

我有一个问题,可能分为两个问题;我试图找到的数学理论的名称是什么?如何在C#中最有效地实现它

基本上,我的问题是,我在计算正确猜测5+游戏结果的累积概率

到目前为止,我构建程序的方式是将匹配及其各自的概率输入到系统中,此时代码将它们组合成一个列表,其中包含所有匹配、获胜者以及发生的概率;这是迭代完成的:

foreach (var game in games)
{
    gamesList.Add(new GameBet
    {
        Home = game.Home,
        Away = game.Away,
        BetResult = game.GameResult,
        Odds = game.Odds
    });
}
其中,通过以下方式将信息添加到游戏列表中:

gamesAndOdds.Add(Result.Create(Teams.Russia, Teams.Slovakia, GameResult.Home, (decimal)2.37));
gamesAndOdds.Add(Result.Create(Teams.Russia, Teams.Slovakia, GameResult.Away, (decimal)3.50));
gamesAndOdds.Add(Result.Create(Teams.Russia, Teams.Slovakia, GameResult.Tie, (decimal)3.2));
基本上,我现在有一个大的列表,其中包含了所有我想要计算的游戏,以及3种不同可能性的几率

现在,我的问题归结到我如何知道哪些比赛/结果将提供最高的累积赔率;即。计算得出的赔率为我赢得的奖金提供了最高的乘数

目前,我已经实现了一个非常嵌套的ForEach循环构造:

for (var spain = 0; spain < 3; spain++)
{
    for (var ireland = 0; ireland < 3; ireland++)
    {
        for (var belg = 0; belg < 3; belg++)
        {
            for (var aust = 0; aust < 3; aust++)
            {
                for (var port = 0; port < 3; port++)
                {
                    counter++;
                    var spainOdd = gamesList.First(x => (int)x.BetResult == spain && x.Home == Teams.Russia);
                    var ireOdd = gamesList.First(x => (int)x.BetResult == ireland && x.Home == Teams.Ukraine);
                    var belgOdd = gamesList.First(x => (int)x.BetResult == belg && x.Home == Teams.France);
                    var austOdd = gamesList.First(x => (int)x.BetResult == aust && x.Home == Teams.England);
                    var portOdd = gamesList.First(x => (int)x.BetResult == port && x.Home == Teams.Germany);
                    var totalOdd = spainOdd.Odds * ireOdd.Odds * belgOdd.Odds * austOdd.Odds * portOdd.Odds;
                    multipliers.Add(totalOdd);
                    var bets = new List<GameBet>() { spainOdd, ireOdd, belgOdd, austOdd, portOdd };
                    BetList.Add(new BetList() { Bets = bets, Odds = totalOdd });
                }
            }
        }
    }
}
for(var西班牙=0;西班牙<3;西班牙++)
{
对于(var ireland=0;ireland<3;ireland++)
{
对于(var belg=0;belg<3;belg++)
{
对于(var aust=0;aust<3;aust++)
{
用于(var端口=0;端口<3;端口++)
{
计数器++;
var spainOdd=gamesList.First(x=>(int)x.BetResult==西班牙和x.Home==Teams.rusia);
var ireOdd=gamesList.First(x=>(int)x.BetResult==爱尔兰和x.Home==Teams.uken);
var belgOdd=gamesList.First(x=>(int)x.BetResult==belg&&x.Home==Teams.France);
var austOdd=gamesList.First(x=>(int)x.BetResult==aust&&x.Home==Teams.England);
var portOdd=gamesList.First(x=>(int)x.BetResult==port&&x.Home==Teams.Germany);
var totalOdd=spainOdd.赔率*ireOdd.赔率*belgOdd.赔率*austOdd.赔率*portOdd.赔率;
乘法器。加(总奇数);
var bets=new List(){spainOdd,ireOdd,belgOdd,austOdd,portOdd};
添加(新的BetList(){Bets=Bets,赔率=totalOdd});
}
}
}
}
}
这确实给了我结果,由于这是一个小项目,计算时间并不紧迫;但是作为一个思维实验,我该如何以一种更通用的方式去做呢? (我很清楚,赌博是一件可怕的事情,很可能无利可图,这纯粹是为了思想实验)

这个问题更适合。阅读这个问题更适合。阅读