高精度演算の学習記録
高精度演算には加算、減算、乗算、除算が含まれ、通常のデータ型の範囲を超える大きな数を扱う際に用いられます。加算と減算は筆算のシミュレーションで実装し、乗算と除算は各桁を順に処理しつつ先頭のゼロ除去に注意します。理解と実装に役立つ例題と参考コードも掲載しています。
Javaコア技術 学習Day01
本記事では、Javaの概要、環境構築、基本的なプログラム構造、データ型、変数、演算子、文字列処理、入出力、制御フロー、配列の使い方など、Javaのコア技術を主に紹介します。Javaのシンプルさ、オブジェクト指向特性、クロスプラットフォーム能力を強調し、JDKやJREなどの専門用語についても詳しく説明しています。
ソートと二分探索の学習
クイックソートとマージソートの原理と実装を、時間計算量や関連問題とあわせて紹介します。クイックソートは中間値を基準に数列を2つに分割して整列し、マージソートは整列済み部分列を統合していきます。整数・浮動小数点数に対する二分探索アルゴリズムとその実装方法についても解説します。
GitHubに大容量ファイルをアップロードする
GitHubに大きなファイルをアップロードするには、Git Large File Storage(LFS)をインストールし、ローカルGitリポジトリで設定する必要があります。具体的には、LFSの導入、大容量ファイルを追跡するポインタ設定、対応コマンドによるアップロードを行います。これらの手順を完了すれば、大容量ファイルをGitHubへ正常にアップロードできます。
Alibaba CloudでDocker+code-serverを設定してオンラインコンパイラを構築する
Dockerとcode-serverをインストールしてオンラインコンパイラ環境を構築する手順です。Dockerの導入、Alibaba Cloudミラーの設定、Nginxの起動、code-serverの導入と設定、C/C++のビルド環境構築を行い、最後にテストコードの実行に成功しました。
実験6 DNSプロトコル分析と測定
本実験は、DNSプロトコルとその基本概念(ドメイン名の構造、DNSサーバー、名前解決の原理など)を理解することを目的としています。DNSシステムの設定、digツールを用いたDNS情報の測定、tcpdumpとWiresharkによるDNSクエリパケットの解析を行います。結果としてDNSクエリ各フィールドの意味を確認し、実験中に遭遇した問題と解決策をまとめることで、DNSプロトコルへの理解とプログラミング能力を高めました。
実験5 電子メール
本実験は、SMTPやPOP3を含む電子メールシステムの基本構造と通信プロトコルを理解することを目的としています。メールエージェント、クライアント、Webメール、telnetコマンドを用いて送受信を行い、その通信過程とプロトコルを解析しました。実験結果として、メール送信の具体的な流れとSMTPプロトコル解析への理解が深まり、プログラミング能力とプロトコル理解の向上につながりました。
実験9 暗号化・デジタル署名・証明書
本実験は、共通鍵暗号、公開鍵暗号、ハッシュ関数、デジタル署名、デジタル証明書の概念と応用を理解することを目的としています。OpenSSLを用いて、暗号化/復号、鍵ペア生成、デジタル署名、自己署名証明書の作成などを行います。実験中に発生した問題を解決することで、プログラミング能力とLinuxコマンドへの理解を高めました。





