我正在嘗試在我的 C# asp.net core 應(yīng)用程序中創(chuàng)建一個(gè)錦標(biāo)賽括號(hào)系統(tǒng)。我發(fā)現(xiàn)這個(gè)錦標(biāo)賽分組放置算法帖子和 RWC 的答案正是我所需要的,因?yàn)樗€包括輪空。我遇到的問題是將這段代碼翻譯為 c#:<?phpdefine('NUMBER_OF_PARTICIPANTS', 16);$participants = range(1,NUMBER_OF_PARTICIPANTS);$bracket = getBracket($participants);var_dump($bracket);function getBracket($participants){ $participantsCount = count($participants); $rounds = ceil(log($participantsCount)/log(2)); $bracketSize = pow(2, $rounds); $requiredByes = $bracketSize - $participantsCount; echo sprintf('Number of participants: %d<br/>%s', $participantsCount, PHP_EOL); echo sprintf('Number of rounds: %d<br/>%s', $rounds, PHP_EOL); echo sprintf('Bracket size: %d<br/>%s', $bracketSize, PHP_EOL); echo sprintf('Required number of byes: %d<br/>%s', $requiredByes, PHP_EOL); if($participantsCount < 2) { return array(); } $matches = array(array(1,2)); for($round=1; $round < $rounds; $round++) { $roundMatches = array(); $sum = pow(2, $round + 1) + 1; foreach($matches as $match) { $home = changeIntoBye($match[0], $participantsCount); $away = changeIntoBye($sum - $match[0], $participantsCount); $roundMatches[] = array($home, $away); $home = changeIntoBye($sum - $match[1], $participantsCount); $away = changeIntoBye($match[1], $participantsCount); $roundMatches[] = array($home, $away); } $matches = $roundMatches; } return $matches;}function changeIntoBye($seed, $participantsCount){ //return $seed <= $participantsCount ? $seed : sprintf('%d (= bye)', $seed); return $seed <= $participantsCount ? $seed : null;}?>我嘗試將每一行 PHP 行翻譯為 C# 等效行。然而,這個(gè)片段讓我停下了腳步:我不明白$roundMatches[]想要實(shí)現(xiàn)什么目標(biāo)。是重新創(chuàng)建數(shù)組嗎?是設(shè)置指針嗎?不知道。我編寫的 C# 版本為每場(chǎng)比賽提供了錯(cuò)誤的種子號(hào)碼。
1 回答

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
它基本上是一樣的array_push
例子
$var[] = "element 1"; $var[] = "element 2"; print_r($var);
將輸出 Array ( [0] => element 1 [1] => element 2 )
如果你想在 c# 中做同樣的事情,我想你必須使用myList.add("element")
- 1 回答
- 0 關(guān)注
- 206 瀏覽
添加回答
舉報(bào)
0/150
提交
取消