「今月の問題」 第67回 (平成17年4月)

 よしお君の家のコピー機は、1.0倍から2.0倍まで、0.1倍きざみの倍率で拡大できます。
 よしお君は、このコピー機を使って、原稿を2.01倍から3.00倍まで拡大する方法を考えました。
 ただし、コピーは2回だけ使うことにします。例えば1回目に1.3倍、2回めに1.9倍すると2.47倍に拡大できます。

 0.01きざみで考えると、2.01から3.00倍まで100個の拡大率が考えられます。(2.01、2.02、2.03、2.04、・・・・・2.08、2.09、3.00)
 ここで問題です。上の100個の倍率のうち、2回の操作で出来るのは何個でしょうか。


<正解者一覧表>          
正解者順位     name      メール到着日時     備 考  
 1藤本悟 さん2005/4/1 0:14大阪府・スーパー新社会人・23才 
 2 呑 さん2005/4/1 0:17ほろ酔い呑ちゃんはお馬鹿なの
 3小林 祥久 さん2005/4/1 0:20 
 4なにわ さん2005/4/1 0:22西宮市 
 5Michael さん2005/4/1 0:32 
 6nobu さん2005/4/1 1:15 
 7信三 さん2005/4/1 1:53シリコンバレーの住人 
 8経友会の進作 さん2005/4/1 7:19京都府木津町・66歳 
 9巷の夢 さん2005/4/1 7:42宮城県出身 
10akira さん2005/4/1 8:13 
11新中1!!!鉄道アニマル さん2005/4/1 9:19東京都 
12 あつきパパ さん2005/4/1 9:40愛知県、2児の父
13カエ さん2005/4/1 9:41千葉県 
14kasama さん2005/4/1 9:53和歌山県プログラマ 
15 ろろ さん2005/4/1 16:41神奈川県
16oguchan1 さん2005/4/1 20:03岡山県 
17 nakka さん2005/4/1 22:53個別指導塾講師
18奥入瀬 さん2005/4/2 0:38東京都 
19robin759 さん2005/4/2 8:56京都市の走る同業者
20いちもく さん2005/4/2 18:33東京・立川市 
21teki さん2005/4/2 19:31大阪府 
22Plutonian さん2005/4/2 20:19冥界より 
23N.Nishi さん2005/4/2 23:48大阪府:中学教諭 
24ゴンとも さん2005/4/3 0:09豊川市 
25寺脇犬 さん2005/4/3 1:33 
26モルモット増殖中 さん2005/4/4 15:25モルモット共和国 
27フジ27時間 さん2005/4/5 22:12香川県 
28浜田明巳 さん2005/4/6 10:41 
29masa さん2005/4/7 21:41山口県 
30寝る坊主 さん2005/4/10 1:28 
31 マナブ さん2005/4/11 13:17 
32たじり さん2005/4/26 16:55テニス好き 
33幸 さん2005/4/26 18:58 
34 高田一輝 さん2005/4/27 2:20最近中3に昇格しました。
35すてっぷす さん2005/4/30 21:05 
36 mhayashi さん2005/4/30 23:44天下の台所 

答えは、26通りでした。

経友会の進作さんの解答です。

(1):2回の操作の組み合わせは、1.0×1.0〜2.0、1.1×1.1〜2.0、1.2×1.2〜2.0、
   1.3×1.3〜2.0、1.4×1.4〜2.0、1.5×1.5〜2.0、1.6×1.6〜2.0、1.7×1.7〜2.0、
   1.8×1.8〜2.0、1.9×1.9〜2.0、2.0×2.0である。
(2):それらから得た数字を100個の各倍率から出る数字とチェックする。
(3):(1)から出る場合の数は27個である。
(4):しかし100個の各倍率から出る数字2.40は、2回の操作の組み合わせの
   1.2×2と1.5×1.6の2通りあるので1通りを減ずる。
(5):27-1=26で、求める答えは26通りです。

浜田明巳さんはエクセルのマクロのプログラムを示していただきました。
Option Explicit
Sub Macro1()
    Sheets("Sheet1").Select
    Call shokika
    Cells(1, 1).Value = 0
    Range("A1").Select
    Dim a(100, 10, 2) As Integer
    Dim j1 As Integer
    Dim j2 As Integer
    Dim seki As Integer
    Dim k As Integer
    For j1 = 0 To 100
      a(j1, 0, 0) = 0
    Next j1
    For j1 = 10 To 20
      For j2 = j1 To 20
        seki = j1 * j2
        If 201 <= seki And seki <= 300 Then
          k = seki - 200
          a(k, 0, 0) = a(k, 0, 0) + 1
          a(k, a(k, 0, 0), 1) = j1
          a(k, a(k, 0, 0), 2) = j2
        End If
      Next j2
    Next j1
    For j1 = 1 To 100
      If a(j1, 0, 0) > 0 Then
        Cells(1, 1).Value = Cells(1, 1).Value + 1
        Cells(Cells(1, 1).Value, 2).Value = (j1 + 200) * 0.01
        For j2 = 1 To a(j1, 0, 0)
          Cells(Cells(1, 1).Value, j2 + 2).Value = Str(a(j1, j2, 1) * 0.1) + "*" + Str(a(j1, j2, 2) * 0.1)
        Next j2
      End If
    Next j1
End Sub
Sub shokika()
    Cells.Select
    Selection.ClearContents
    Columns("B:B").Select
    Selection.NumberFormatLocal = "0.00_ "
End Sub