どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

Titanic: Machine Learning from Disaster

Kaggleのタイタニック号乗客の生存予測をやってみました。データ分析の経験はないので今回は少し触ってみる程度でやってみます。とりあえずやったことをざっくり書いていきます。 実装はpythonです。 必要なモジュールの用意 データの用意 データを読み込む …

0010: Circumscribed Circle of a Triangle

AOJ

外接円 問題ページ 解き方 3つの点が与えられるので、それらを使い三角形の三辺を求める。 外接円の半径は余弦定理と正弦定理より求めることができる。 外心は円の方程式を利用して求める。 円の方程式はx2+y2+lx+my+n=0より、lx+my+n=-(x2+y2)と表すことが…

0103: Baseball Simulation

AOJ

野球シミュレーション 問題ページ 解き方 塁上の情報を記憶するリストを用意する。 イベントデータがHITで、3塁に走者がいるなら1点加算し、1塁と2塁の走者がいるならそれぞれ次の塁へ進ませる。if文を使わなくてもスライスを使えば短いコードで書くこと…

0009: Prime Number

AOJ

素数 問題ページ 解き方 エラトステネスの篩を使って素数のリストを用意し、そこから素数の値のみを取り出したリストを作る。 pytry3g.hatenablog.com そして受け取った入力nに対して、そのn以下の素数の数を出力する。 いろいろやり方はあると思うが今回…

0008: Sum of 4 Integers

AOJ

4つの整数の和 問題ページ 解き方 a, b, cをそれぞれループで回す。a+b+c+d=nよりnからa, b, cの和を引くとdを求めることができる。ここでdは0以上9以下になっていればa, b, c, dの和とnは等しいことがわかる。等しければ組み合わせとしてカウントする…

0007: Debt Hell

AOJ

借金 問題ページ 解き方 一週間ごとに5%の利子を借金に加え、そこから1000円未満を切り上げる。 1000円未満の切り上げは少し工夫をする。例えば、借金が125125円だとする。 これを1000で割ると125.125になる。ここでmathライブラリのceilを使うと…

0102: Matrix-like Computation

AOJ

表計算 問題ページ 解き方 行列を入れるリストmatrix[row][column]を用意し、1行目から行列の値とその和を出力していくだけ。ただし、右詰め5桁で出力する必要があるので、formatを使う。 最後の行は列の和を出力するがこれはzipを使えば簡単に求めることが…

0101: Aizu PR

AOJ

Aizu PR 問題ページ 解き方 文字列を置換するだけ、pythonではreplaceを使うと簡単にできる。 コード(python) n = int(input()) dataset = [input().replace("Hoshino", "Hoshina") for _ in range(n)] print(*dataset, sep="\n")

0501: Data Conversion

AOJ

Data Conversion 問題ページ 解き方 はじめに変換表が与えられるので、それらを辞書に登録する。 あとは、変換するデータを辞書にもとづき変換するだけ。 コード(python) while True: n = int(input()) if n == 0: break converter = {} for _ in range(n): …

エラトステネスの篩

エラトステネスの篩(ふるい)とは、 ある整数n以下の全ての素数を見つけるための高速なアルゴリズムのこと。 アルゴリズム 2からnまでの整数をリストに入れる。 2から順番にその倍数(その数自身は除く)をリストから削除していく。 nの平方根になれば…

Volume16

AOJ

1600: Entrance Examination 1600: Entrance Examination 解答例

1600: Entrance Examination

AOJ

入学試験 問題ページ 解き方 m人の得点をリストにいれる。あらかじめ得点は高い順に入力されることが保証されているのでソートの必要はない。 forループでnminからnmax人までのギャップを調べ、そのギャップが最大値の場合そのときの人数nを答えとする。 …

Volume5

AOJ

0500: Card Game 0501: Data Conversion 0500: Card Game 解答例 0501: Data Conversion 解答例

0500: Card Game

AOJ

Card Game 問題ページ 解き方 AとBの得点をもつリストを用意する。 1番目の要素にAの得点、2番目の要素にBの得点を入れるようにする。Aの得点が高ければ2枚のカードの数字の合計を1番目の要素に、Bの得点が高ければ2枚のカードの合計を2番目の要素に、同じな…

Volume1

AOJ

0100: Sale Result 0101: Aizu PR 0102: Matrix-like Computation 0103: Baseball Simulation 0100: Sale Result 解答例 0101: Aizu PR 解答例 0102: Matrix-like Computation 解答例 0103: Baseball Simulation 解答例

0100: Sale Result

AOJ

販売実績 問題ページ 解き方 売上金額(data)と社員番号(order)を持つリストを用意する。 dataのindexが社員番号に対応している。例えば、社員番号が1001の場合dataは data[1001] = 売上 となる。 orderには入力された順に社員番号を入れていく。 入力が…

2018年

2018年、今年1年が勝負の年。 今のこの状況から這い上がるためには努力するしかない。

年越しそば

今日は大晦日ということで、年越しそばを食べた。今まではどん兵衛などで済ましてきて自分では作ったことなかったが今回は初めて自分で作って食べてみた。 完成したのが下の写真。 失敗した\(^o^)/ いろいろ失敗したので来年のためになぜ失敗したのか書き…

PyTorchを使ってSMSSpamCollectionの分類をしてみる。(2)

NLP

前回の続き、今回はTFIDFを使ってスパム分類をしてみる。 pytry3g.hatenablog.com 前準備 TFIDF Training 結果 コード 前準備 import argparse import codecs import string import numpy as np from nltk import word_tokenize from sklearn.feature_extrac…

UbuntuでMeCabを使ってみる

NLP

前回は最低限の設定をしたので今回はMeCabを使えるように設定していく。 pytry3g.hatenablog.com MeCab MeCabとは形態素解析(テキストから単語を切り出して、単語の役割を解析する技術)をするためのツールです。テキストを分析や処理を行うにはまずテキス…

PyTorchを使ってSMSSpamCollectionの分類をしてみる。

NLP

環境 前準備 データのダウンロード データの中身 データの前処理 データの分割 正規化 Bag of Words データの分割 Training ネットワークの定義 パラメータの設定 学習 Test 結果 コード 環境 python 3.6.2 Anaconda 4.3.27 Windows10 scikit-learn 0.19.0 n…

Reverse Sequence

AOJ

文字列反転 問題ページ 解き方 与えられた文字列を逆順で出力するだけ。 コード(python) print(input()[::-1])

Volume10

AOJ

1000: A + B Problem 1000: A + B Problem 解答例

GCD and LCM

AOJ

最大公約数と最小公倍数 問題ページ 解き方 pythonのmathモジュールにはmath.gcd関数がありますがこれはバージョン3.5で追加されており、現状Aizu Online Judgeのpythonのコンパイラは3.4.2なのでこれは使うことができません。なので、ユークリッドの互除法…

1000: A + B Problem

AOJ

販売実績 問題ページ 解き方 整数A、Bを空白区切りで受け取り、足すだけ。 コード(python) while True: try: print(sum(map(int, input().split()))) except: break

Simultaneous Equation

AOJ

連立方程式 問題ページ 解き方 連立方程式の解き方をプログラムで書いていくだけ。 ① ax+by=c ② dx+ey=f 始めにyを求める。yを求めるには ①xd - ②xaでxを消してyを求めることができる。 yが求まれば、①にyを代入し、 x=(c-by) / a でxを求めることが…

Volume0

AOJ

0000: QQ 0001: List of Top 3 Hills 0002: Digit Number 0003: Is it a Right Triangle? 0004: Simultaneous Equation 0005: GCD and LCM 0006: Reverse Sequence 0007: Debt Hell 0008: Sum of 4 Integers 0009: Prime Number 0010: Circumscribed Circle …

Is it a Right Triangle?

AOJ

直角三角形 問題ページ 解き方 3辺の長さを受け取った後ソートする。 一番長い辺をc、それ以外をそれぞれa, bとしa²+b²=c²が成り立てば直角三角形となる。 コード(python) def triangle(dataset): a, b, c = dataset if a*a + b*b == c*c: return 1 return 0…

Ubuntuの設定をする。

昨日MacBook AirにUbuntu16.04をいれたのでいろいろ環境設定をしていく。 pytry3g.hatenablog.com Google Chrome python Atom OneDrive Google Chrome Terminalを開いて ① sudo apt-get install libappindicator1 次にここからー>https://www.google.co.jp/…

MacBook AirにUbuntuをインストール

2012年に買ったMacBook AirにUbuntuを諸事情によりインストールすることに。 とりあえずやったことを書いておく。 usbメモリを用意する。今回使ったのは4㎇のもの。 最新のisoファイル(ubuntu-ja-16.04-desktop-amd64.iso)をここからダウンロードー>https:…