2020_08_16_hw オンライン プログラミング勉強会

この記事は6分で読めます

このサイトは学部では早稲田で物理を, 修士では東大で数学を専攻し, 今も非アカデミックの立場で数学や物理と向き合っている一市民の奮闘の記録です. 運営者情報および運営理念についてはこちらをご覧ください.

中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しよう役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!


課題

メモ:先に進む前に録画してあるか確認しよう

自分用メモ

  • 遅延型方程式に対するコメント追加
  • matplotlib のチュートリアルを読もうの会
    • 公式情報に触れる重要性
    • 古い情報が古いと書いてあったりする:たとえば pylab
    • Gallery
      • 見ていて面白い
      • 「どこをいじるとどう変わるか」が視覚的にわかる
      • 公式情報なのできちんとアップデートしてくれている(はず)
      • 公式情報にソースがあるので自分でいろいろ書き換えていて破滅したとき、必ずオリジナルを復元できる

Matplotlib

  • 本当に簡単な図を描く
  • $x^2$ のフーリエ級数:参考

\begin{align}

f(x)

x^2

\frac{\pi^2}{3} + \sum_{n=1}^\infty \frac{(-1)^n}{n^2} 4 \cos nx.
\end{align}

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(- np.pi, np.pi, 1001)
xsquared = x**2
y0 = np.full(len(x), np.pi**2 / 3)
y1 = y0 - 4 * np.cos(x)
y2 = y1 + (1/2**2) * 4 * np.cos (2 * x)
y3 = y2 - (1/3**2) * 4 * np.cos (3 * x)
y4 = y3 + (1/4**2) * 4 * np.cos (4 * x)
y5 = y4 - (1/5**2) * 4 * np.cos (5 * x)

plt.plot(x, xsquared, label="$x^2$")
plt.plot(x, y0, label="y0")
plt.plot(x, y1, label="y1")
plt.plot(x, y2, label="y2")
plt.plot(x, y3, label="y3")
plt.plot(x, y4, label="y4")
plt.plot(x, y5, label="y5")
plt.xlabel("$-\pi$ to $\pi$")
plt.ylabel("Fourier")
plt.title("Fourier transform of $x^2$")

plt.grid()
plt.legend()
#plt.axes().set_aspect('equal', 'datalim') # アスペクト比を合わせる
plt.show()
png

TeX の記録

  • 測地線の方程式

\begin{align}
\nabla_{c’} c’
&=
0, \
\frac{d^2 c^i}{ds^2} + \Gamma^i_{jk} \frac{dc^j}{ds} \frac{dc^k}{ds}
&=
0.
\end{align}

競プロ、AtCoder

約数列挙C – Digits in Multiplication

整数 $N$ が与えられます。ここで、$2$ つの正の整数 $A,B$ に対して、$F(A,B)$ を「$10$ 進表記における、$A$ の桁数と $B$ の桁数のうち大きい方」と定義します。例えば、$F(3,11)$ の値は、$3$ は $1$ 桁、$11$ は $2$ 桁であるため、$F(3,11)=2$ となります。$2$ つの正の整数の組 $(A,B)$ が $N=A×B$ を満たすように動くとき、$F(A,B)$ の最小値を求めてください。

約数列挙のポイント

  • 素数判定と同じく $a = 1,2,3,\dots,\sqrt{N}$ で割り続けてためていく。
  • $\sqrt{N}$ までしか見ないので、$a$ を約数にしたら $N/a$ も約数リストにためる。
    • $N$ が $a^2$ を約数に含むとき、$a = N/a$ になるときがあるので、この重複を除いてリストに入れる。
    • Python など集合がある場合は集合にためてもいい。
  • 今回の問題は必ずしも全約数列挙ではないので、このリスト自体は作らなくてもいい。
  • 参考解答
import math

def solve(N):
    a = math.ceil(math.sqrt(N))
    p = []

    for i in range(1, a+1):
        if N % i == 0:
            x = len(str(i))
            y = len(str(N // i))
            p.append(max(x, y))

    return min(p)

print(solve(10000)) # 3
print(solve(1000003)) # 7
print(solve(9876543210)) # 6
3
7
6

IT 基礎知識

  • 応用情報の本を一日2ページくらい眺めてみてください。毎日やれば大体 1 年で読み終わります。
    • 次回対応予定:7.4 ネットワーク層のプロトコルと技術

復習

OSI基本参照モデル

  • 会社の部署と同じ気分
  • 特定層は自分のところにしか責任を持たない
  • 「他の層は他の層で専門的に管轄してね」
  • お互い全くの無関係ではないが、基本的には自分のことだけ考えていればいい。

ある端末が持つ・割り当てられる IP

  • 大前提:同じマシンでも状況に応じて IP はいろいろ変わる
    • 例:スマホ
      • 家の中のネット環境
      • 外で単独で使うとき
      • 適当な Wi-Fi につなぐとき
    • 気分:どのルーターの配下にいるか?
      • ルーターはあとで触れる
  • 参考:WAN
  • 参考:インターネットの仕組みとISPの構造

本の記述を追いかける

P.386 コネクションレス型通信である

  • Wikipedia
  • TCP/IP の UDP で使われる
  • Wikipedia の UDP から
    • 参考:ハンドシェイク
    • 「トランスポート層でのそのような処理のオーバーヘッドを削減している」

通信中のパケット紛失や重複、改竄の検出やそのための対応が必要な場合はアプリケーションで行う。それによってトランスポート層でのそのような処理のオーバーヘッドを削減している。リアルタイム・システムでは遅れているパケットを待つよりもそういうパケットはないものとして処理する方が好ましいため、適時性を重視するアプリケーションでよく使われている[1]。トランスポート層での誤り検出機能が必須なら、その用途に設計された Transmission Control Protocol (TCP) または Stream Control Transmission Protocol (SCTP) を使えばよい。

  • オーバーヘッドの問題はいろいろなところで出てくる
  • 参考:「ITの分野では、コンピュータで何らかの処理を行う際に、その処理を行うために必要となる付加的、間接的な処理や手続きのことや、そのために機器やシステムへかかる負荷、余分に費やされる処理時間などのことをオーバーヘッドということが多い。」

P.386 ルーターとは

  • 異なるネットワークを相互に接続するネットワーク機器
  • Wikipedia

通常はOSI基本参照モデルでの第1層(物理層)から第3層(ネットワーク層)までの接続を担う。一般的に用いられるルーターは、基本機能として各ネットワーク間でのIPパケット(第3層)をやり取りできるようにする装置であるが、実際は基本に加えてさまざまな付加機能を実現している。

ハードウェアとしてのルーターは、おおまかに通信事業者 (ISP) 向けのコアルーターと企業向けのエッジルーター、コンシューマー向けのブロードバンドルーターに分けられる。

ルーターというのは「会社の電話の内線と外線の交換機」にそっくりです。最初からそう説明すればよかったですね。

あなたが iPad のサファリを開き、キーワード「NETAGE のWiFi レンタルは国内最安?」を Google で検索すると、iPad は WiFi 経由で WiFi ルーターに接続されます。そして WiFi ルーターは LTE(3G や 4G でもいいですけど)で近くの基地局と接続し、その先のインターネットに接続します。
LAN につながった iPad から WiFi 経由でWiFi ルーターにリクエストが送信されたのです。その後、WiFi ルーターから近所のアンテナ基地局へ、そこから更にインターネットを経由して Google サーバにリクエストが届きます。

このようなネットワーク接続状態のとき、WiFi ルーターのこっち側を LAN(ローカルエリアネットワーク)、向こう側を WAN(ワイドエリアネットワーク)と呼びます。(必ずしも正確ではないですが、シンプルに考え、)WAN はインターネット、LAN は WiFi、とすれば分かりやすいと思います。

P.386 (IP)ヘッダ

P.389 特殊なIPアドレス

  • 8.8.8.8:Google の DNS として有名
  • 127.0.0.1:開発時によく使う。Windows だと「c:/Windows/System32/drivers/etc/hosts」ファイルでドメイン名「localhost」を指定して使うこともある。
  • グローバル IP とローカル IP
    • 最初に触れた問題
    • 外向きにグローバル IP アドレス、内向きにプライベート IP アドレスを使う
    • IP の無駄遣いを防ぐためもある
    • クラス A-C:会社の規模によって使い分ける
    • もちろん A が大企業向け、C が小企業・家庭用という感じ
    • 本でいきなり「192.168.」というアドレスが出てくることがあるが、それはまさにこのプライベートアドレスで話をしている。

P.390 サブネットマスク

  • これは社内セキュリティに使われたりする
  • 参考
    • 会社の部署間でデータの参照を制限する場合
    • パソコンやサーバの台数が多く分割して管理する場合
    • 開発環境と本番環境を分けるなど、環境を切り離す場合
  • ネットワーク設計の話
    • 経営関係の資料を一般社員には見せたくない
    • 経営関係者のネットワークとその他社員の領域を切り分け、経営関係者しかその資料があるところにアクセスできないようにする

P.392 IPv6

  • IP アドレスの枯渇
  • IPv4 でも「特殊なIPアドレス」などグローバル・ローカルを分けたりして枯渇対策はしてきた。
  • 「端末」が世にあふれてきて、アドレスが足りなくなってきた
    • 原理的に「IPアドレスは32けたの2進数」としているので、これ以上増やせない
      • IPはよく「インターネット上の住所」に例えられるが、市町村合併で起きる実際の住所変更のように柔軟に変えられるわけではない
        • 実際の住所にしても行政関係はもちろん、郵便や運送業などのシステムのレベルでは修正や対応が必要
    • 既存の機器・プログラムはこの前提で動いていて、勝手に変えられないし、仮に変えられるとしても膨大な手間になる
    • 新たな仕様を作り、それで世界全体に持っていく
    • 少なくとも既存の欠点はつぶしておく必要があるし、しばらく枯渇しないようにしたい

P.392 IPv6 の特徴

勉強会の案内: アインシュタインの特殊相対性理論の原論文を多言語で読む会の話

  • bewegter の話をしよう

微分積分

  • 理解という言葉で何を求めているのか?
  • 短期目標と長期目標は何か?
  • 質はともかく量をこなしているか?
    • 量に関する参考:微分幾何計算ノート
  • 基礎をどこまで頑張るか?
    • 高校の数学はだいたいいい加減
    • day3.pdf, P.15 「微分可能性を保証していない」
  • 直近で何を諦めるか?

中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しよう役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!

  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

このサイトについて

数学・物理の情報を中心にアカデミックな話題を発信しています。詳しいプロフィールはこちらから。通信講座を中心に数学や物理を独学しやすい環境づくりを目指して日々活動しています。
  • このエントリーをはてなブックマークに追加
  • LINEで送る

YouTube チャンネル登録

講義など動画を使った形式の方が良いコンテンツは動画にしています。ぜひチャンネル登録を!

メルマガ登録

メルマガ登録ページからご登録ください。 数学・物理の専門的な情報と大学受験向けのメルマガの 2 種類があります。

役に立つ・面白い記事があればクリックを!

記事の編集ページから「おすすめ記事」を複数選択してください。