2020-06-14 課題

自分用メモ

Matplotlib

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-4, 4, 201)
y1 = - 0.5 * x + 1
y2 = np.sin(x)
y3 = np.cos(x)

plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)

plt.grid()
plt.axes().set_aspect('equal', 'datalim') # アスペクト比を合わせる
plt.show()
1
/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:14: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.

勉強ネタ紹介

競プロを 2 題解いてみる

ABC081B、Shift only

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#https://atcoder.jp/contests/abs/submissions/14323299
#input()
#A = list(map(int, input().split()))

def f(A):
    count = 0
    while all(a % 2 == 0 for a in A):
        A = [a/2 for a in A]
        count += 1
    print(count)

A = [8, 12, 40]
f(A)

A = [5, 6, 8, 10]
f(A)

A = [382253568, 723152896, 37802240, 379425024, 404894720, 471526144]
f(A)
1
2
3
2
0
8

Python の all

Pythonでリストやタプルなどのイテラブルオブジェクトの要素がすべてTrue(真)か、いずれか一つでもTrueか、あるいは、すべてFalse(偽)かを判定するには組み込み関数all(), any()を使う。

1
2
print(all([True, True, True]))
print(all([True, False]))
1
2
True
False

ABC086C、Traveling

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#N = int(input())
def f(N, course):
    count = 0
    T, X, Y = 0, 0, 0
    for i in range(N):
        #t, x, y = map(int, input().split()) # 都度読み込み:駄目な経路があれば即終了
        t, x, y = course[i]
        if abs(x-X)+abs(y-Y) <= t-T and t % 2 == (x+y) % 2:
            count += 1
        T, X, Y = t, x, y
    print("Yes" if count == N else "No")

N = 2
course = [(3, 1, 2,), (6, 1, 1)]
f(N, courses)

N = 1
course = [(2, 100, 100)]
f(N, course)

N = 2
course = [(5, 1, 1), (100, 1, 1)]
f(N, course)
1
2
3
Yes
No
No
1
2
3
4
5
6
7
8
if count == N:
    s = "Yes"
    if a == B:
        s = "a"
    elif a == C:
        s = "b"
else:
    s = "No"

現実的なスケジューリングの問題

PASMO などの運賃計算

プロスポーツのスケジュール決定

プログラミングの一般論

web システムの事例

データ構造とアルゴリズム

(連結)リストと配列

リストの特徴

配列の特徴

ベクター(参考