# coding: utf-8 Anna = [ 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 ] Betty = [ 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 ] Cara = [ 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 ] Diana = [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 ] # Anna,Betty,Cara,Diana を友人とする # 1 日だけを想定 # 24 時間を配列内の 0~23 で表す # 0~8 は睡眠時間(睡眠時刻)としてカット def g1(a,b,c,d) return( a == b and b == c and c == d ) end # 目標: 全員が出席できる時間を 1 時間にする # 入力: 時間を表す 4 つの整数 # 出力: ブール値(True か False を意図する値) # 効果: すべての入力時間が等しい場合に True を 返す def c1(a) return(a < 11 or a > 13) end # Anna は午前 11 時から午後 1 時 50 分まで授業 # Betty は正午から午後 3 時まで授業 # 〃 午後 4 時までダンスの練習 # Cara は午後 7 時から午後 11 時まで仕事 # Diana は午後 6 時から午後 8 時までボランティア 活動 # 〃 午後 8 時から午後 11 時まで仕事 Anna.each do |v| Betty.each do |w| Cara.each do |x| Diana.each do |y| if g1( v,w,x,y ) and c1( v ) and c2( w ) and c3( x ) and c4( y ) ## === 解決の結果はココ puts "Anna, Betty, Cara, and Diana can hang out at: " + v.to_? + ":00" ## ===