本日の宿題

1/25

[宿題:基本・高度共通・J2級向け]

 1 ビットの数 A,B の和を 2 ビットで表現したとき,上位ビット C と下位ビッ
ト S を表す論理式の組合せはどれか。ここで,"・"は論理積,"+"は論理和,
not(X) は X の否定を表す。

   ┌─┬─┬─────┐
   │  │  │ AとBの和 │
   │ A│ B├──┬──┤
   │  │  │ C  │  S │
   ├─┼─┼──┼──┤
   │ 0│ 0│  0 │  0 │
   ├─┼─┼──┼──┤
   │ 0│ 1│  0 │  1 │
   ├─┼─┼──┼──┤
   │ 1│ 0│  0 │  1 │
   ├─┼─┼──┼──┤
   │ 1│ 1│  1 │  0 │
   └─┴─┴──┴──┘


  ┌──┬──────────────┐
  │ C │          S              │
┌─┼──┼──────────────┤
│ア│A・B│{ A・not(B) }+{ not(A)・B }│
├─┼──┼──────────────┤
│イ│A・B│{ A+not(B) }・{ not(A)+B }│
├─┼──┼──────────────┤
│ウ│A+B│{ A・not(B) }+{ not(A)・B }│
├─┼──┼──────────────┤
│エ│A+B│{ A+not(B) }・{ not(A)+B }│
└─┴──┴──────────────┘

注意:桁がずれて表示されているときは以下のサイトを参考にして下さい。
KAZ池田氏提供  http://www.mag2.com/faq/mua.htm

◆考えたこと・調べたこと・質問
A B
0 0
0 1
1 0
1 1
とする

※体裁が崩れるので[整形済みテキストブロック]タグを使用しています
  C         S
ア:A・B  { A・not(B) }+{ not(A)・B }
   0      0   +   0    = 0
   0      0   +   1    = 1
   0      1   +   0    = 1
   1      0   +   0    = 0

C  S
0  0
0  1
0  1
1  0
→○

イ:A・B  { A+not(B) }・{ not(A)+B }
   0      1   +   1    = 1
   0      0   +   0    = 0
   0      1   +   0    = 1
   1      1   +   1    = 1

C  S
0  1
0  0
0  1
1  1
→×

ウ:A+B  { A・not(B) }+{ not(A)・B }
   0      0   +   0    = 0
   1      0   +   1    = 1
   1      1   +   0    = 1
   1      0   +   0    = 0

C  S
0  0
0  1
0  1
1  0
→×

エ:A+B  { A+not(B) }・{ not(A)+B }
   0      1   +   1    = 1
   1      0   +   1    = 1
   1      1   +   0    = 1
   1      1   +   1    = 1

C  S
0  1
1  1
1  1
1  1
→×
  • 私のAns:ア

☆正解でした

宿題メール解説引用」
>CはAND、SはXOR(EOR)ですね。

>  A、Bを入力、Cを出力として見ると論理積演算なので、
>  Cは、A・B
>  A、Bを入力、Sを出力として見ると排他的論理和演算なので、
>  Sは、{ A・not(B) }+{ not(A)・B }

[宿題:ソフトウェア開発向け]

 整数 x,y (x > y ≧ 0) に対して,次のように定義された関数 F(x,y) が
ある。F(231,15)の値は幾らか。ここで,x mod y は x を y で割った余りであ
る。

        / x              (y = 0 のとき)
   F(x,y) = |
        \ F(y,x mod y)  (y > 0 のとき)

 ア 2

 イ 3

 ウ 5

 エ 7

【実習課題】実際にプログラムを作成してみよう。

◆考えたこと・調べたこと・質問
y=0まで、繰り返す(再帰的関数)

初期値が F(231, 15)なので、関数の定義によりy > 0 の
F( y, x mod y ) を使う
F( 15, 231 mod 15 ) = F( 15, 6 ) となる
y=6(y>0)なので、さらにF( y, x mod y ) を使う

F( 6, 15 mod 6 ) = F( 6, 3 ) となる
y=3(y>0)なので、さらにF( y, x mod y ) を使う

F( 3, 6 mod 3 ) = F(3, 0 ) となる
y=0 なので、条件より x=3 となる よって、イ

  • 私のAns:イ

☆正解でした

宿題メール解説引用」
> F(231,15) → F(15,231 mod 15)
> → F(15,6)
> → F(6,15 mod 6)
> → F(6,3)
> → F(3,6 mod 2)
> → F(3,0)
>
> 2数を割って余りを取っていき、余りが0になった時、
> その時の割り切った数が最大公約数である。
> というアルゴリズムユークリッドの互除法と呼ぶ。
> http://www.asahi-net.or.jp/~KC2H-MSM/mathland/math11/math1102.htm

[宿題:情報セキュアド向け]

 アローダイアグラムで示す工程に基づいてシステム開発を進めたい。各作業を
それぞれ最も早く開始するとき,必要となる人数の推移を表す図はどれか。ここ
で,図中のそれぞれの作業に付けた数字は,作業に必要な日数と,1 日当たりの
必要人数を表す。

             ○
            ┐ \
      20 日 3 人/   \ 20 日 2 人
          /     \
   20 日 5 人  / 20 日 4 人 ┘
○─────→○────────→○
         \        ┐  \
          \      :    \10 日 3 人
      20 日 2 人 \   :      \
            ┘ :        ┘
              ○────────→○
              10 日 2 人       :::> ダミー作業


ア                  イ
人数                 人数
 ┌                  ┌   ┌───┐
 ├                  ├   │   │
 ├                  ├   │   │
 ├              ┌───┐       ├   │   │
5├───────┘      └─┐    5├───┘   │    ┌─┐
 ├                          │     ├       │   │ │
 ├                          │     ├       │   │ │
 ├                          │     ├       └───┘  │
 ├                          │     ├             │
0└─┴─┴─┴─┴─┴─┴─┴─    0└─┴─┴─┴─┴─┴─┴─┴─
           50  日数              50  日数

ウ                  エ
人数                 人数
 ┌                  ┌   ┌───┐
 ├       ┌───┐      ├   │   │
 ├       │   │      ├   │   │
 ├              │   │      ├   │   │
5├───┐   │      └─┐    5├───┘   │
 ├      │      │          │    ├       └─┐
 ├      └───┘          │    ├         │ ┌─┐
 ├                          │    ├         └─┘  │
 ├                          │    ├             │
0└─┴─┴─┴─┴─┴─┴─┴─    0└─┴─┴─┴─┴─┴─┴─┴─
           50  日数              50  日数

注意:桁がずれて表示されているときは以下のサイトを参考にして下さい。
KAZ池田氏提供  http://www.mag2.com/faq/mua.htm
正しい図は,
 http://zigen.cosmoconsulting.co.jp/images/QUS-H15CM-AM.pdf
 の問23のところで見ることができます。

◆考えたこと・調べたこと・質問
図を順に追っていく(条件:各作業をそれぞれ最も早く開始する)
問題の○にアルファベットを入れて考えました

※体裁が崩れるので[整形済みテキストブロック]タグを使用しています

             C
            ┐ \
      20 日 3 人/   \ 20 日 2 人
          /     \
   20 日 5 人  / 20 日 4 人 ┘
A─────→B────────→E
         \        ┐  \
          \      :    \10 日 3 人
      20 日 2 人 \   :      \
            ┘ :        ┘
              D────────→F
              10 日 2 人      :::> ダミー作業


日数 0    10   20   30   40   50   60   70
   |----|----|----|----|----|----|----|
(A>B)  5555555555
(B>C)            3333333333
(B>E)            4444444444
(B>D)            2222222222
(C>E)                      2222222222
(D>F)                      22222
(E>F)                                33333

                                                                                      • -
計) 55555555559999999999444442222233333 20日目まで、5人 21日〜40日目まで、9人 41日〜50日目まで、4人 51日〜60日目まで、2人 61日〜70日目まで、3人

よって、グラフはエ

  • 私のAns:エ

☆正解でした ☆「考えたこと」を採用して頂きました

宿題メール解説引用」
> 最初の 20 日間は 5 人
> 次の 20 日間は 3 + 4 + 2 = 9 人
> 次の 10 日間は 2 + 2 = 4 人
> 次の 10 日間は 2 + 0 = 2 人
> 次の 10 日間は 3 人