�掘檻�
各ノード間の移動コストが非負である場合の最短経路探索を行う際、Dijkstra のアルゴリズムがよく用いられる。Dijkstra のアルゴリズムを用いて下図の始点ノードSから他のノードへの最短経路・コストを求める際に、Sからの最短経路が決定していくノードの順序として、最も適切なものはどれか。

� 。咫。繊。臓。叩。帖�
�◆。咫。繊。叩。臓。�
�� S B A D C
�ぁ。咫。臓。帖。繊。�
�ァ。咫。臓。叩。繊。�
今日気づいたことを、軽いタッチで、コミカルに表現してみました。 パソコンやITに関することも時々書いています。
各ノード間の移動コストが非負である場合の最短経路探索を行う際、Dijkstra のアルゴリズムがよく用いられる。Dijkstra のアルゴリズムを用いて下図の始点ノードSから他のノードへの最短経路・コストを求める際に、Sからの最短経路が決定していくノードの順序として、最も適切なものはどれか。

� 。咫。繊。臓。叩。帖�
�◆。咫。繊。叩。臓。�
�� S B A D C
�ぁ。咫。臓。帖。繊。�
�ァ。咫。臓。叩。繊。�
次のC++プログラムの実行結果として、最も適切なものはどれか。
#include <iostream>
using namespace std;
class Sample {
public:
int val;
Sample (int i) { val = i; }
void operator= (int i) { val += i; }
void operator= (Sample s) { val += 1; }
} ;
Sample add (Sample x) {
x = 1;
return x;
}
int main ()
{
Sample s = 1;
cout << add (s).val;
}
� 。院 ´◆�2 �� 3 �ぁ�4 �ァ�5
著作権法によるソフトウェアの保護範囲に関する記述のうち、適切なものはどれか。
ア アプリケーションプログラムは著作権法によって保護されるが、OSなどの基本プログラムは権利の対価がハードウェアの料金に含まれるので、保護されない。
イ アルゴリズムやプログラム言語は、著作権法によって保護される。
ウ アルゴリズムを記述した文書は著作権法で保護されるが、そのアルゴリズムを用いて作成されたプログラムは保護されない。
エ ソースプログラムとオブジェクトプログラムの両方とも著作権法によって保護される。
配列Aが図2の状態のとき、図1の流れ図を実行すると、配列Bが図3の状態になった。図1のaに入れる操作はどれか。ここで、配列A、Bの要素をそれぞれA(i,
j)、B(i, j)とする。

図1 流れ図
j
───────────────→
0 1 2 3 4 5 6 7
│ ┌─┬─┬─┬─┬─┬─┬─┬─┐
│0│ │*│*│*│*│*│*│ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│1│ │*│ │ │ │ │ │ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│2│ │*│ │ │ │ │ │ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│3│ │*│*│*│*│ │ │ │
i│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│4│ │*│ │ │ │ │ │ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│5│ │*│ │ │ │ │ │ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│6│ │*│ │ │ │ │ │ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│7│ │*│ │ │ │ │ │ │
↓ └─┴─┴─┴─┴─┴─┴─┴─┘
図2 配列Aの状態
j
───────────────→
0 1 2 3 4 5 6 7
│ ┌─┬─┬─┬─┬─┬─┬─┬─┐
│0│ │ │ │ │ │ │ │ │
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│1│*│*│*│*│*│*│*│*│
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│2│ │ │ │ │*│ │ │*│
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│3│ │ │ │ │*│ │ │*│
i│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│4│ │ │ │ │*│ │ │*│
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│5│ │ │ │ │ │ │ │*│
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│6│ │ │ │ │ │ │ │*│
│ ├─┼─┼─┼─┼─┼─┼─┼─┤
│7│ │ │ │ │ │ │ │ │
↓ └─┴─┴─┴─┴─┴─┴─┴─┘
図3 実行後の配列Bの状態
ア B(7-i, 7-j) ← A(i, j)
イ B(7-j, i) ← A(i, j)
ウ B(i, 7-j) ← A(i, j)
エ B(j, 7-i) ← A(i, j)
次の流れ図は、2数A、Bの最大公約数を求めるユークリッドの互除法を、引き算の繰返しによって計算するものである。Aが876、Bが204のとき、何回の比較で処理は終了するか。

ア 4 イ 9 ウ 10 エ 11