院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

2019-01-01から1ヶ月間の記事一覧

大学の図書館は便利

大学生向け図書館の利用法。大学の図書館はめっちゃ本がある。 プログラミングの本に関しては市の図書館の比じゃない。 本を買わずに済むからお財布に優しい。 そして2ヶ月間も借りられる(うちの大学では)なので 少しでも興味を持ったら関連の分野を片っ端…

螺旋本

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造作者: 渡部有隆出版社/メーカー: マイナビ出版発売日: 2015/01/30メディア: Kindle版この商品を含むブログを見る螺旋本を読み始める。 思ったよりも基礎から説明されててスラスラ読めそう

オブジェクト指向

クラス: グローバル変数と関数をまとめて、隠すものポリモーフィズム: 関数の呼び出し方を統一 (実装をクラス側に置くことで、新しいクラスを作っても呼び出し方を変えずに済む) ライブラリ: メイン関数を自分で書き、ライブラリの関数を呼び出すフレー…

オブジェクト指向でなぜつくるのか

オブジェクト指向でなぜつくるのか 第2版作者: 平澤章出版社/メーカー: 日経BP社発売日: 2011/04/07メディア: 単行本購入: 6人 クリック: 92回この商品を含むブログ (20件) を見る前半はプログラミングにおけるオブジェクト指向。 後半は設計におけるオブジ…

関数と参照渡し

関数: ・引数を渡すと戻り値を返すもの ・外部の変数から影響を受けない(引数が同じなら戻り値も同じ) ・外部の変数に影響を与えない(グローバル変数などを変更しない)これだとインスタンスや配列などのオブジェクトを更新(状態の変更)ができない そ…

参照渡しと値渡し

magazine.rubyist.net値渡し: 変数の値のコピーを渡す。 もとの変数とは関係ない。 関数の出力は引数のみに依存。 副作用がない関数が作れる。参照渡し: 変数のメモリ番地を渡す。 変更するともとの変数も変わる。 副作用が起こる。参照の値渡し: 変数の…

goを学ぶ

go

スターティングGo言語 (CodeZine BOOKS)作者: 松尾愛賀出版社/メーカー: 翔泳社発売日: 2016/04/15メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見るgo言語が面白そうだから学んでみる。 ポインタ、参照の下りがとてもわかり易い。 副作用…

なっとくアルゴリズムを再読

なっとく! アルゴリズム作者: アディティア・Y・バーガバ,株式会社クイープ出版社/メーカー: 翔泳社発売日: 2017/02/01メディア: 単行本(ソフトカバー)この商品を含むブログを見る再読した。 わかりやすくてよい。 特に動的計画法(ナップザック問題)はグリ…

数学パズルはここまで

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2015/10/14メディア: 単行本(ソフトカバー)この商品を含むブログ (11件) を見るこの本は解説が少ない。 だから実践力をつけた…

数学パズルQ23

def blackjack(coin, limit) return 0 if coin == 0 return 1 if limit == 0 blackjack(coin + 1, limit - 1) + blackjack(coin - 1, limit - 1) end puts blackjack(10, 24) 途中面倒そうな問題は飛ばした。

数学パズルQ17

@boy, @girl = "B", "G" NN = 30 # seq 座っている人のリスト # 再帰は帰納法と深さ優先がある、これは深さ優先! def add(seq) return 1 if seq.size == NN isLastBoy = seq[-1] == @boy isLastBoy ? add(seq + @boy) + add(seq + @girl) : add(seq + @boy)…

数学パズルQ16

def check(max) cnt = 0 (1..max).each do |sideLen| next if sideLen % 4 != 0 square = { side: sideLen / 4, area: sideLen / 4 * sideLen / 4, } rects = [] (1..square[:side] - 1).each do |vert| rects.push({ vert: vert, hori: sideLen / 2 - vert,…

数学パズルQ15

def search(countries, prev, depth) # 前の国名に続く国の一覧を取得 next_countries = countries.select { |c| c[0] == prev[-1].upcase } return depth if next_countries.size == 0 # 続く国がある場合、その国を除いて再帰的に探索 next_countries.redu…

再帰関数の作り方

再帰関数を作るときは一旦数列で表現すると良い。nとn-1の関係を再帰で表現し 初項を終了条件で表現する

1年前はscssすらわかってなかった

1年前の自分の投稿を見たらcssとscssの違いすらわかってなかった。自分が成長したって考え方もできるけど、 webアプリを作る技術はコモディティ化しやすいってことかもしれない。

デザインは思いやり

アートは自分から他人、デザインは他人から自分 アートはセンス、デザインは思いやりわかりやすいデザインを作れる人は、きっと優しい人だろう

数学パズルQ9

解説が雑すぎてよくわからん。 とりあえず、格子状の最短経路問題について def shortGrid1(row, col) ary = Array.new(row + 1).map { Array.new(col + 1, 0) } ary[0][0] = 1 (0..row).each do |r| (0..col).each do |c| if (r -1 >= 0) ary[r][c] += ary[r…

ruby 2次元配列の作り方

rubyでの2次元配列の作り方 注意しないと同じオブジェクトを参照しちゃう。 以下やり方 ary = Array.new(3).map{Array.new(3,0)}

数学パズルQ8

def move(num, hist = [], cur_pos = [0, 0]) hist = [*hist, cur_pos] return 0 if hist.count > num + 1 return 1 if hist.count == num + 1 around = [[0, 1], [0, -1], [1, 0], [-1, 0]] around.reduce(0) do |acc, ar| next_pos = [cur_pos[0] + ar[0],…

数学パズルQ6

def colats(num, accNum = 3 * num + 1) return 1 if accNum == num return 0 if accNum == 1 accNum = accNum.even? ? accNum / 2 : 3 * accNum + 1 colats(num, accNum) end puts [*1..10000].select { |el| el.even? }.map { |el| colats(el) }.sum この…

数学パズル Q5

# 入力:数値 # 出力:組み合わせの数 def ryogae(tar) cnt = 0 (0..15).each do |zyu| (0..15).each do |gozyu| (0..15).each do |hyaku| (0..15).each do |gohyaku| next if zyu + gozyu + hyaku + gohyaku > 15 val = 10 * zyu + 50 * gozyu + 100 * hyak…

プログラミングの基礎

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2015/10/14メディア: 単行本(ソフトカバー)この商品を含むブログ (11件) を見る結局、前作を買いました。 こっちのほうが問題…