Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Myyura committed May 30, 2024
2 parents 23025a6 + 96f94cd commit 0def733
Show file tree
Hide file tree
Showing 2 changed files with 297 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,295 @@
---
comments: false
title: 名古屋大学 情報学研究科 知能システム学専攻 2023年8月実施 プログラミング
tags:
- Nagoya-University
---
# 名古屋大学 情報学研究科 知能システム学専攻 2023年8月実施 プログラミング

## **Author**
祭音Myyura

## **Description**
以下は Python プログラムに関する問題である。

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

\[1\] 以下の各プログラムの出力結果 (output) を答えよ。

(1)
```text
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a + 2)
```

(2)
```text
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a.dot(b))
```

(3)
```text
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[1:, 1:])
```

(4)
```text
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sum = np.sum(a, axis=0)
print(sum[1])
```

(5)
```text
import numpy as np
a = np.arange(6).reshape(2, 3)
print(a)
```

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

\[2\] 以下の設問に答えよ。

(1) 下記のプログラムにおいて関数 (function) func() を実行した場合、なぜ a\[0\] の値は 3 になり、b の値は 3 にならないのか説明せよ。

```text
def func(m, n):
m[0] = m[0] * 3
n = n * 3
a = [1]
b = 1
func(a, b)
print("a =", a[0], " b =", b)
```

(2) 下記のプログラムを実行した場合、無限ループ (infinite loop) が発生して停止しないことがある。なぜ無限ループが発生するのか説明せよ。

```text
sum = 0.0
while True:
if sum == 10:
break
else:
sum = sum + 0.1
```

(3) 下記のプログラムを実行した場合、エラーが発生するか否か答えよ。
また、エラーが発生しない場合はその理由を、エラーが発生する場合はその解決策を答えよ.

```text
a = "Hello"
a[0] = 'h'
```

(4) 下記のプログラムを実行した場合、エラーが発生するか否か答えよ。
また、エラーが発生しない場合はその理由を、エラーが発生する場合はその解決策を答えよ.

```text
x = 10
def func():
x += 1
print(x)
func()
```

(5) 下記のプログラムを実行した場合、エラーが発生するか否か答えよ。
また、エラーが発生しない場合はその理由を、エラーが発生する場合はその解決策を答えよ.

```text
for i in range(10):
print(i)
i = "Hello"
```

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

\[3\] 下記のブログラムは、与えられた数までのすべての素数 (prime number) をリストとして出力する。以下の設問に答えよ。

```text
def prime_numbers(n):
primes = []
for num in range(n, 1, -1):
is_prime = True
for i in range(2, num):
if [ 空欄 a ]:
is_prime = False
break
if [ 空欄 b ]:
primes.append(num)
return primes
```

(1) \[ 空欄 a \]\[ 空欄 b \] に入る適切な式を答えよ。

(2) print(prime_numbers(20)) の出力結果を答えよ。

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

\[4\] 下記のプログラムを読んで、以下の設問に答えよ。

```text
import numpy as np
def func(x, y, a, b):
m, n = x.shape
p, q = y.shape
for i in range(m-p+1):
for j in range(n-q+1):
flag = True
for k in range(p):
for l in range(q):
if abs(x[i+k, j+l] - y[k, l]) > a:
flag = False
break
if flag:
x[i:i+p, j:j+q] = b
return x
x1 = np.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[1, 2, 3, 4, 5]])
y1 = np.array([[2, 3],
[7, 8]])
y2 = np.array([[0, 0],
[0, 0]])
print(func(x1, y1, 1, 0))
print(func(x1, y2, 0, 1))
```

(1) 27 行目まで実行したときの 27 行目の print 文の出力結果を答えよ。

(2) 28 行目まで実行したときの 28 行目の print 文の出力結果を答えよ。

(3) 8 行目から 14 行目を以下の 1 行の形で表したい。等価な処理となるよう空欄を埋めよ。

- if \[ 空欄 \]

(4) グレースケール画像 (grayscale image) は一般に行列 (matrix) として表現できる。
関数 func() の第 1 引数に画像の行列を与えると、返り値 (return value) としてどのような画像が得られるか説明せよ。

## **Kai**
### \[1\]
#### (1)
```text
[3 4 5 6 7]
```

#### (2)
```text
32
```

#### (3)
```text
[[5 6]
[8 9]]
```

#### (4)
```text
15
```

#### (5)
```text
[[0 1 2]
[3 4 5]]
```

### \[2\]
#### (1)
Pythonでは、数値、文字列、タプルなどのオブジェクトが値渡し(関数に引数の値をコピーして渡す方法)の対象となりますので、関数内で b の値が変更されていても、関数の外側で定義された x の値は変わっていません。

#### (2)
10進数の「0.1」を2進数に変換すると「0.0001100110011…」となり、「0011」の部分が永遠に循環します。
このような値はどこかの桁数で丸めを行う必要があるため、誤差が生じます。

#### (3)
エラーが発生します。次のように変更すれば良いです。

```text
a = "Hello"
a = "h" + a[1:]
```

#### (4)
エラーが発生します。次のように変更すれば良いです。

```text
x = 10
def func():
global x
x += 1
print(x)
func()
```

#### (5)
エラーが発生しません。出力は

```text
0
1
2
3
4
5
6
7
8
9
```

### \[3\]
#### (1)
- \[ 空欄 a \]: num % i == 0
- \[ 空欄 b \]: is_prime

#### (2)
```text
[19, 17, 13, 11, 7, 5, 3, 2]
```

### \[4\]
#### (1)
```text
[[ 0 0 0 0 5]
[ 0 0 0 0 10]
[ 0 0 0 0 5]
[ 0 0 0 0 10]
[ 1 2 3 4 5]]
```

#### (2)
```text
[[ 1 1 1 1 5]
[ 1 1 1 1 10]
[ 1 1 1 1 5]
[ 1 1 1 1 10]
[ 1 2 3 4 5]]
```

#### (3)
- if np.sum(np.abs(x[i:i+p, j:j+q] - y) > a) == 0:

#### (4)
(マスク?)
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,8 @@ nav:
- 2010年度:
- 8月 プログラミング: kakomonn/nagoya_university/informatics/is_200908_programming.md
- 知能システム学専攻:
- 2024年度:
- 8月 プログラミング: kakomonn/nagoya_university/informatics/aisys_202308_programming.md
- 2022年度:
- 8月 確率・統計: kakomonn/nagoya_university/informatics/aisys_202108_prob_stat.md
- 8月 解析・線形代数: kakomonn/nagoya_university/informatics/aisys_202108_analy_algebra.md
Expand Down

0 comments on commit 0def733

Please sign in to comment.