- スレ立てるまでもない質問はここで 145匹目©2ch.net
738 :デフォルトの名無しさん[sage]:2017/02/19(日) 18:49:44.27 ID:jfBNLWVT - ちょっと長いけどSwiftでプログラム書いてみたw
// 看守 class Officer { let numberOfPrisoners: Int let gracedIndex: Int init(numberOfPrisoners: Int, gracedIndex: Int) { self.numberOfPrisoners = numberOfPrisoners self.gracedIndex = gracedIndex } func anserTheQuestion() -> Int { switch gracedIndex { case 0: return Int(arc4random_uniform(2) + 1) case 1: return 2 case 2: return 1 default: assert(false) } } }
|
- スレ立てるまでもない質問はここで 145匹目©2ch.net
739 :デフォルトの名無しさん[sage]:2017/02/19(日) 18:50:00.17 ID:jfBNLWVT - // 恩赦の決定
class Pardoner { static func giveAPardon(numOfPrisoners count: Int) -> Int { return Int(arc4random_uniform(UInt32(count))) } static func makeOfficer(numberOfPrisoners: Int) -> Officer { let gracedIndex = Pardoner.giveAPardon(numOfPrisoners: numberOfPrisoners) return Officer(numberOfPrisoners: numberOfPrisoners, gracedIndex: gracedIndex) } } let numberOfPrisoners = 3 // 囚人の数 var totalA: Int = 0 // Aが恩赦 var totalC: Int = 0 // Bが恩赦 var numberOfTrial = 10000 // 試行回数
|
- スレ立てるまでもない質問はここで 145匹目©2ch.net
740 :デフォルトの名無しさん[sage]:2017/02/19(日) 18:50:10.79 ID:jfBNLWVT - for i in 0..<numberOfTrial {
// 恩赦の決定 let officer = Pardoner.makeOfficer(numberOfPrisoners: numberOfPrisoners) let anser = officer.anserTheQuestion() // 看守に質問 if anser == 1 { // Bは死刑 if officer.gracedIndex == 0 { totalA += 1 // Aが恩赦 } if officer.gracedIndex == 2 { totalC += 1 // Cが恩赦 } } } print(totalA) // Aが恩赦だった数 print(totalC) // Cが恩赦だった数
|
- スレ立てるまでもない質問はここで 145匹目©2ch.net
741 :デフォルトの名無しさん[sage]:2017/02/19(日) 19:01:55.24 ID:jfBNLWVT - ん、冷静に見返すとちょっと色々酷いな
まいいやメシ食お
|