バスの到着時間を最適化するための方法
cs50のYoutube動画「バスの到着時間を最適化するための方法」について要点と要約をまとめました
3つの要点
- 要点1
課題は、待ち時間を最小限に抑えながら、乗客をピックアップするための3つのバスの最適な到着時間を決定することでした。 - 要点2
乗客とバスの到着時間を考慮することで、最適なバスの時間を計算することができます。 - 要点3
プログラムは、最適な解を見つけるために全ての可能な組み合わせを繰り返し処理し、最適なバスの時間を出力します。
要約
課題の理解
「Wait for it」という課題では、与えられた乗客の数をピックアップするために、3つのバスの最適な到着時間を決定する課題が与えられました。目標は、全ての乗客がピックアップされる一方で、待ち時間を最小限に抑えることです。
最適なバスの時間を決定するためのロジック
最適なバスの時間を見つけるためには、バスが乗客の到着時間の間に到着しないようにしたり、乗客が到着しない時間に到着しないようにすることが重要です。また、最後のバスは最後の乗客と同時に到着する必要があります。これらの要素を考慮することで、最適な到着時間を計算することができます。
最適な時間の計算
最適な時間を計算するために、乗客のリストとバスの時間のセットを受け取る「wait time」という関数を作成することができます。この関数は、与えられたバスの時間に基づいて乗客の待ち時間の合計を計算します。各乗客について繰り返し処理を行い、到着時間よりも大きいか等しいバスの時間をチェックします。適切なバスの時間が見つかった場合、乗客の待ち時間が合計の待ち時間に追加されます。乗客に対してバスが見つからない場合は、負の値が返されます。
最適な解の見つけ方
メインの関数では、まず乗客の数と到着時間を入力します。次に、最適な時間と解を初期化します。全ての可能なバスの時間の組み合わせを繰り返し処理し、待ち時間を計算し、前の最適な時間よりも良いかどうかをチェックします。もし良い場合は、最適な時間と解を更新します。最後に、最適なバスの時間を出力します。
▼今回の動画
編集後記
▼ライターの学び
この記事を読んで、バスの到着時間を最適化するためのロジックを学びました。また、全ての可能な組み合わせを繰り返し処理することで最適な解を見つける方法についても学びました。
▼今日からやってみよう
今日から、自分の日常生活で待ち時間を最小限に抑えるために、バスの到着時間を考慮して行動してみましょう。また、問題を解決するために全ての可能な解を試してみることもできます。