T_NAKAの阿房ブログ

アクセスカウンタ

zoom RSS Python のおさらい(6)

<<   作成日時 : 2015/08/27 00:01   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

今回はProblem4.を考えていきます。
まず、問題4の前の説明から訳してみます。


We can generalize this idea to work with any size packages of McNuggets, not just 6, 9, and 20.

6、9、20 でないマックナゲットのどんなサイズ・パッケージででも、この考えを一般化することができる。

For simplicity, however, we will assume that McDonald’s still provides McNuggets in three different sized packages.

しかし、単純さのために、マクドナルドがまだ3つの異なる大きさのパッケージでマックナゲットを提供すると仮定する。


[Problem4:問題4]----------------------------------------------------

Assume that the variable packages is bound to a tuple of length 3, the values of which specify the sizes of the packages, ordered from smallest to largest.

小さいものから順に並べられた可変パッケージ・サイズを3要素のタプルで指定されていると仮定する。

Write a program that uses exhaustive search to find the largest number (less than 200) of McNuggets that cannot be bought in exact quantity.

ピッタリな量で買うことができないマックナゲットで(200未満での)最大数を見つけるために、徹底的な検索を使うプログラムを記述せよ。

We limit the number to be less than 200 (although this is an arbitrary choice) because in some cases there is no largest value that cannot be bought in exact quantity, and we don’t want to search forever.

場合によってはピッタリな量で買うことができない最大数がないので、200(これが任意の選択であるが)未満であるように制限し、永遠に捜したくない。

Please use ps2b_template.py to structure your code.

ps2b.py のテンプレートを使用して、コードを書いて下さい。

Have your code print out its result in the following format:

その結果は次の形式で出力すること:


 “Given package sizes <x>,<y>, and <z>, the largest number of McNuggets that cannot be bought in exact quantity is: <n>”


Test your program on a variety of choices, by changing the value for packages.

パッケージの値を変えることによって、いろいろな選択に関してプログラムをテストせよ。

Include the case (6,9,20), as well as some other test cases of your own choosing.

あなた自身が選ぶ若干の他のテストケースだけでなく、ケース(6、9、20)を含めること。

----------------------------------------------------------------------


[用意されたテンプレート]==========================================
###
### template of code for Problem 4 of Problem Set 2, Fall 2008
###

bestSoFar = 0   # variable that keeps track of largest number
            # of McNuggets that cannot be bought in exact quantity
packages = (6,9,20)   # variable that contains package sizes

for n in range(1, 150):   # only search for solutions up to size 150
   ## complete code here to find largest size that cannot be bought
   ## when done, your answer should be bound to bestSoFar
=================================================================

コメントを訳しておきましょう。-------------------------------------

bestSoFar = 0 # variable that keeps track of largest number of McNuggets that cannot be bought in exact quantity

#ピッタリな量で買うことができない最大数のマックナゲットの経過を追う変数

packages = (6,9,20) # variable that contains package sizes

#パッケージ・サイズを含む変数

for n in range(1, 150): # only search for solutions up to size 150

#サイズ150まで解決を捜すだけ

## complete code here to find largest size that cannot be bought when done, your answer should be bound to bestSoFar

##買うことができない最大のサイズを見つけるために、コードをここで完成せよ。答えはbestSoFarの束縛を受けなければならない。

----------------------------------------------------------------------

(6,9,20) という組合せ以外にも適用するため、Python のおさらい(3)問題2で示した定理は使えないですね。
ということは 200 まで試してみて、表現できない最大数を求める方針で考えましょう。

その前に、与えられたタプルからデータを取り出す方法を考えます。
画像









こんなふうに、index でとって来れば良かったのでした。
次に 200 までにするためには、x,y,z の何倍が必要かを考えます。

画像













6×33=198 ; 9×22=198 ; 20×10=200

なので、辻褄が合います。
では解答を考えていきましょう。

画像


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Python のおさらい(6) T_NAKAの阿房ブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる