ICPC 2019 国内予選B 「スクリーンキーボード」解説

問題: https://onlinejudge.u-aizu.ac.jp/challenges/sources/ICPC/Prelim/1633 C++で解説しています. 問題の言い換え のマス目があり,各マスに文字が割り当てられている.最も左上のマスを(0, 0)とする.あなたは(0, 0)におり,1回の移動で上下左右の1マ…

ICPC 2019 国内予選A 「期末試験の成績」 解説

問題: https://onlinejudge.u-aizu.ac.jp/challenges/sources/ICPC/Prelim/1632 C++で解説しています. 問題の言い換え 整数が行列で並んでいる.列の合計値の最大値を求めよ. 解法 各列の合計を計算して,最大値を出力します.計算方法はいくらでもありま…

ICPC 2003国内予選B 「Get Many Persimmon Trees」

問題URL: https://onlinejudge.u-aizu.ac.jp/challenges/sources/ICPC/Prelim/1125?year=2003 問題の言い換え 横,縦個のマス目がある.ここに個の点を打つ.個目の点は座標である.点の座標は重複しない.この下で,横,縦の領域で囲める点の数の最大値を出…

NAIST受験記2020(2021年春入学・1回目)

本記事は1年前の情報です (2021年7月21日に追記)この記事は2021年度・春入学の受験記です.既に2022年度・春入学の第一回入試は終了しており,この記事も1年前の古い情報になりました.NAISTの入試形式が変わらない限りは本記事の情報も生き続けますが,基…

【python】コマンドライン引数を扱うargparseを丁寧に

はじめに 本記事では,argparseを用いてコマンドライン引数を便利に使う方法を紹介します. 公式ドキュメントはこちら:argparse --- コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.10.6 ドキュメント 目次 はじめに 目次 argparseは…

spaCyで英語の文をトークナイズする方法を丁寧に

はじめに 本記事では,spaCyを用いて英文をトークナイズする方法を紹介します. トークナイズに関する情報を比較的詳しく解説するとともに,公式ドキュメントやソースコードへの導線を張ることを目的にしています. 本記事に書いてあることは,公式ドキュメ…

多クラス分類における混同行列と評価指標を丁寧に

はじめに 本記事では多クラス分類(マルチクラス分類)における評価値の考え方・計算方法について説明します.具体的には,最も重要な混同行列の作成方法から始まり,適合率(Precision),再現率(Recall),F1スコア,マクロ平均,およびマイクロ平均を扱…

【NLTK】NLTKに収録されているコーパスの利用方法

はじめに 本記事ではnltkに収録されているコーパスの利用方法を紹介します. 公式ドキュメント: www.nltk.org 以下では,まずは収録コーパスを扱うためのメソッドを紹介した後,収録されている主なコーパスの紹介を行います.なお,メソッドの紹介のサンプ…

【sklearn】TfidfVectorizerの使い方を丁寧に

はじめに 本記事では[sklearn.feature_extraction.text.TfidfVectorizerについて丁寧に説明します. 公式ドキュメント: scikit-learn.org はじめに tfとidf TfidfVectorizerの役割 TfidfVectorizerの入出力 TfidfVectorizerの宣言 主なメソッド・属性 fit()…

【sklearn】Classification_reportの使い方を丁寧に

はじめに 本記事ではsklearn.metrics.classification_reportについて丁寧に説明します. 公式ドキュメント: scikit-learn.org はじめに classification_reportの役割 classification_reportの入出力 classification_reportの宣言 出力の説明 列ラベルの説明…

【sklearn】LabelEncoderの使い方を丁寧に

はじめに 本記事ではsklearn.preprocessing.LabelEncoder()について丁寧に説明します. 公式ドキュメント: scikit-learn.org はじめに LabelEncoderの役割 LabelEncoderの基本的な入出力 LabelEncoderの宣言 fit() transform() (ラベル→ラベルID) fit_trans…

【Pytorch】nn.Embeddingの使い方を丁寧に

はじめに 本記事では,Pytorchの埋め込み層を実現するnn.Embedding()について,入門の立ち位置で解説します. ただし,結局公式ドキュメントが最強なので,まずはこちらを読むのをお勧めします. pytorch.org 対象読者は, 他のモデルの実装記事見ても,全人…

Processingで「時間」を扱う一般的なテクニック

はじめに 本記事では時間を扱うテクニック全般を紹介します. 時間を扱いたくなる場面としては,ゲーム制作であれば,ステージをクリアするのに時間制限を設けるとき,必殺技的な何かを打った時のクールダウンを設定するときなどが考えられます.アート作品…

甲南大学知能情報学部の成績優秀者表彰制度について・ボーダー予想

はじめに 本記事は,表題の表彰制度の報酬やGPAのボーダーの予想について書きます.筆者は2年連続これを受賞しています(自慢です,というのは嘘で,記事の信ぴょう性のためです.). この表彰制度について 簡単に言うと,良い成績(=高いGPA)を取れば受…

bibを入力とした論文読みサイトを作ってみた

はじめに 論文管理,大変ですよね.日本語や英語問わず,論文を読むようになって思うのは,「論文へのアクセスに時間かかるな」ということです.一度読んだ論文をもう一度読みたい時. タイトルや著者もしくは会議で検索 学会の論文ページに飛ぶ 論文のPDFを…

【入門】processingで最小限のブロック崩しゲームを作る

この記事は,processingを用いてブロック崩しを作るためのチュートリアルです.初心者でも完成までたどり着けるように、詳しく書いていきたいと思います. 出てくるプログラムの知識は int型, float型、変数、if、for程度です.どれも事前知識があると嬉しい…

甲南大学知能情報学部の講義感想

はじめに 甲南大学の知能情報学部の講義について,学べることや感想を書いていきます.あくまでも,僕が受けた授業についてのみ書いていることにご注意ください. また,講義の内容については,各講義のシラバスが最も正確であり,最も信憑性が高いというこ…

【Pytorch】ミニバッチ学習に便利なDataSet・DataLoaderの使い方

はじめに 深層学習によって学習を行う際には,ミニバッチ化して学習させることが一般的です.本記事では,pytorchで提供されているDataSetとDataLoaderという機能を用いてミニバッチ化を実現する方法について書きます. はじめに ミニバッチ化とは DataSetと…

【python3.x】 練習問題55本ノック【問題と解答】

はじめに ここではpythonの練習問題を掲載しています. データを処理する際には,必ず「データの格納」と「データの取り出し」を行うことになるので,その方法を知ることを目的としています.問題は暗算で解けるものや,頭の中で答えが分かるものが多数あり…

【python3.x】 練習問題55本ノック【問題のみ】

はじめに ここではpythonの練習問題を掲載しています. データを処理する際には,必ず「データの格納」と「データの取り出し」を行うことになるので,その方法を知ることを目的としています.問題は暗算で解けるものや,頭の中で答えが分かるものが多数あり…

書評・感想:リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者:Dustin Boswell,Trevor Foucher発売日: 2012/06/23メディア: 単行本(ソフトカバー) どのような本なのか タイトル通りと言えばそれまでですが.「いか…

Processingという言語は何ができるのか

0. はじめに ここでは,Processingという言語について,何ができるのかを解説します. processing.org 大学などで行われるプログラミング教育では,学習の入り口としてProcessingが使われることがあります. これによって,学習者は2つのことを習得します.1…

processingにおけるシーン遷移(画面遷移)を実現する一般的なテクニック

はじめに 基本アイデア 実装例 1. draw()に直書き 2. 関数を呼び出す 3. シーンを文字列で指定する 単純なゲーム制作で理解するシーン遷移 共通部分の追加 スタートシーンの追加 ゲームシーンの追加 クリアシーンの追加 おわりに はじめに ここでは,process…

【入門】processingで最小限の一筆書きゲームを作る

本記事は,processingで一筆書きのゲームを作る記事です. 早速ですが,完成版は画像のようになると思います.マウスを使ってマス目をなぞり,なぞったところは赤くなります.全てのマス目をなぞることができればクリアです. 完成予想図 まだprocessingをよ…

HackerRankでコンテストを主催する方法

競技プログラミングの世界では,様々なサイトでコンテストが開かれています.具体的には,AtCoderやCodeForcesなどです.その中でも,HackerRank(ハッカーランク)というサイトは,自分でコンテストを開けることが特徴です.今回はその具体的な方法について…

カメさんぽ攻略Tips集

はじめに カメさんぽを知らない人はこの記事にたどり着いていない気がしますが、これはカメさんぽの記事です。カメさんぽはカービィで有名なハル研究所のゲームで、歩数によってカメ達と仲良くなるゲームになっています。 本記事では、ゲームを進める上で知…

2019振り返り

2019年も終わりです.結構,年が変わったとて特に何かあるわけではないと思っているタイプですが,せっかくなので振り返りをします.時系列は全く考慮していません. 競プロ 競技プログラミングは,やはり今年はそれなりにやったと思います.10月ごろからは…

CodinGame「UNLEASH THE GEEK」参加記

CodinGameというサイトの10日間コンテスト、「UNLEASH THE GEEK」に参加しました。Bronzeリーグ到達、世界1354/2162、日本52/62の成績でした。 www.codingame.com はじめに これはCodinGameのコンテストに初めて参加した人の感想です。技術的な攻略はあまり…

requestsとbeautifulSoup4でスクレイピングをしてみた

スクレイピングとは webサイトから必要な情報を抜き出してくることです。 requestsとは pythonのモジュールの一つで、httpの通信ができます pip install requests beautifulSoupとは pythonのモジュールの一つで、webサイトのデータを入力して、それを解析し…

ABC136 D Gathering Children

問題 atcoder.jp 解説 最終的にどのような状態になるのか 軽くシミュレートをすると、子供たちは、最終的に"RL"または"LR"であるような境界を行き来するだけになります。文字列の長さに対して回も移動するので、これは確実です。 そこで、このような境界にお…