複素数クラスを実装することによりScalaのコンセプトを説明する: Complex Numbers in Scalaを読んで

Complex Numbers in Scala | Stoyan Rachev's Blog Java Code Geeksの記事 CC-BY-SA 3.0 複素数クラスの実装を通じてScalaの重要なコンセプトを説明している。説明する主な機能は以下のとおり。 メソッドのオーバーライド コンストラクタと演算子のオーバー…

S-99: Ninety-Nine Scala Problems所感 リスト操作編

S-99: Ninety-Nine Scala Problems Prolog学習者のための99問の練習問題をScalaで解こうという企画。難易度は(*), (**), (***)の三段階で分けられている(Prolog向け難易度の引き写し)。 (*) 簡単。15分以内に解ける。 (**) 中級者向け。習熟したScalaプログ…

もうすぐIPython Notebookが流行る気がするので

不在通知票を貼っておく。というか日本語の情報に飢えているので誰か包括的な解説を書いてほしいです。なんかできることが多すぎて私の手には余る。 MatplotlibのグラフやSympyの数式がインタラクティブ表示できる Markdown形式で文章を挿入できMathJaxも普…

ライフゲームの向こうがわへ

Jude Gomila Beyond the Game of Life | Jude Gomila ゼロ・プレイヤー 初めてコンウェイのライフゲームで何時間か遊んでみた時、それは自然を模倣した素晴らしい創作物であり、運命のすべてがここに構築されているという印象を受けた。ライフゲームは私たち…

Word ladder

問題文 [12/4/2012] Challenge #114 [Easy] Word ladder steps : dailyprogrammer ワード・ラダーは、単語を一度に一文字だけ変更することによって生成される単語の順列のことである。例: cold → cord → card → ward → warmこの問題では、四文字単語の辞書…

バイオインフォマティックス学習サイトROSALINDが面白い

生物情報科学版 Project Euler といったおもむき。 ROSALIND | Problems やり方は最初の問題を開いてみればわかるはず。問題IDはその分野の用語っぽかったり? としゃれこんでいる。 問題ID:DNA ヌクレオチドの数え上げ 与えられたDNA文字列に含まれるそれ…

Redditをスクレイピングする例題

[11/3/2012] Challenge #110 [Intermediate] Creepy Crawlies : dailyprogrammer 問題 問題文 Webは不気味なストーリーで溢れかえっています。Redditにおいては/r/nosleepに。あなたは熱烈な不眠愛好者ですから(我々は結局のところプログラマですからね)、…

文字列が数字のみで成り立っているか調べる

問題 [10/30/2012] Challenge #109 [Easy] Digits Check : dailyprogrammer 概要 与えられた文字列が数字のみで成り立っていればTrue、そうでなければFalseを返す関数を書く。 たとえば小数点(.)を含むものはFalseを返す。 入力 入力:数字のみを含むか含ま…

パンデジタル数(Pandigital Number)を見つける

問題 Need help with a number theory problem(java) : learnprogramming 3桁の数に3桁の数を足して4桁の数にする式を考える。0〜9までの数字を一度ずつ使ってこの等式を表したとき、3つの数が最小になるような組み合わせはどれか。 http://programmingpraxi…

野球のボールカウント

オフラインリアルタイムどう書く第三回の参考問題 #どう書く #yhpg #勉強会 #Ruby - Qiita 問題 野球のボールカウント・アウトカウントの遷移を計算する。(得点・ランナー・イニング の計算は不要) ただし、ストライク・ボール・ファウル・ヒット・ピッチ…

Pythonでリストをflattenする方法まとめ

参考 1段ネストしたリストをflattenする方法 Making a flat list out of list of lists in Python - Stack Overflow 2段以上ネストしたリストをflattenする方法 Flatten (an irregular) list of lists in Python - Stack Overflow Right Foot In: More on py…

単語の異なる文字の数[9/30/2012] Challenge #102 [intermediate] (n-character-set strings) : dailyprogrammer

[9/30/2012] Challenge #102 [intermediate] (n-character-set strings) : dailyprogrammer 問題 単語sと数nを受け取り、単語の異なる文字の数がn以下の時Trueそれ以外の場合False返す関数。 解答 def ncset(s, n): return len(set(s)) <= n if __name__ == …

余りを取るだけの簡単な問題[10/18/2012] Challenge #104 [Easy] (Powerplant Simulation) : dailyprogrammer

問題 [10/18/2012] Challenge #104 [Easy] (Powerplant Simulation) : dailyprogrammer 日数を取り、3, 14, 100の倍数日ごとに停止する発電所の稼働日数を返す関数を作る。 解答 def plant_online_days(day): online_day = 0 for i in range(1, day+1): if i…

テトリスの揃った列を消す - Bit Tetris

問題 Bit Tetris 〜 横へな 2012.7.25 16進数文字列で表現されたテトリスのフィールドを受け取って揃っている列を消す問題。 解答 zip(*list)が便利すぎる。 def bit_tetris(notation): xbits = notation.split("-") bbits = map(lambda x: bin(int(x, 16))[…

ポーカーの手札から役を特定する

問題 第一回 オフラインリアルタイムどう書くの参考問題 #勉強会 #Ruby #C - Qiita 5枚のカードを示す文字列を入力とし、ポーカーの役を出力せよ。 ただし: 一枚のカードは、スートを表す文字+ランクを表す文字列 で構成される。 スートを表す文字は、S, H,…

三目並べ(Tick Tack Toe)の勝敗を出力

問題 Tick-Tack-Toe 〜 横へな 2012.7.6 文字列形式で入力された先攻後攻の手から勝敗(引き分け)を判断する。 不正な入力は考慮しないが、不正な手(すでに置かれている場所に置こうとする)は考慮する。 解答 def tick_tack_toe(record): record = map(la…

ある表記法に則った画像を回転する問題 - 第2回 オフラインリアルタイムどう書くの参考問題

問題 第2回 オフラインリアルタイムどう書くの参考問題 #勉強会 #どう書く #yhpg #Ruby #C - Qiita ある表記法に則った2値画像データを時計回りに90度回転させてもとの表記に戻す問題。 解答 一行あたりの処理単位がめちゃくちゃだけど、スライシング多用で…

CoffeeScriptでProject Euler #14

Problem14 正の整数に以下の式で繰り返し生成する数列を定義する。 n → n/2 (n が偶数) n → 3n + 1 (n が奇数)13からはじめるとこの数列は以下のようになる。 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 113から1まで10個の項になる。 この数列はどのような…

CoffeeScriptでProject Euler #15

Problem 15 図が付されているのでリンク参照。Problem 15 - PukiWiki Solution fact = (n) -> if n == 1 1 else n * fact(n-1) console.log (fact 40) / (fact 20) / (fact 20) プログラミング的にはどう解けばいいのでしょう。題意が読み取れません。逆路:…

テーブルトークRPGのダイス表記を計算する [9/30/2012] Challenge #102 [easy] (Dice roller) : dailyprogrammer

[9/30/2012] Challenge #102 [easy] (Dice roller) : dailyprogrammer 問題 ダイス表記(dice notation)とは"AdB(+/-)C"という形式の文字列(A,B,Cは数)を受け取って以下の計算を行う記法である。 1からBまでの乱数(B面ダイス)をA回ふって合計する。 1の…

操車場アルゴリズム(Shunting Yard Algorithm)による中置記法の解析 [10/18/2012] Challenge #104 [Hard] (Stack Attack) : dailyprogrammer

[10/18/2012] Challenge #104 [Hard] (Stack Attack) : dailyprogrammer 問題 あのDijkstraが発明した手法だそう。 説明 あなたは邪悪なエンジニアであり、D++という新しい言語を作ろうとしている。これはあなたのお気に入りの計算機科学者にちなんで"Dijkst…

カッコの対応を判定する[10/18/2012] Challenge #104 [Intermediate] (Bracket Racket) : dailyprogrammer

[10/18/2012] Challenge #104 [Intermediate] (Bracket Racket) : dailyprogrammer 問題文 カッコ"()", カギカッコ"[]", 波カッコ"{}", 山カッコ"<>" を含む文字列がちゃんと対応して閉じているか確認する。 入力と出力の形式 入力は文字列、返り値は真偽値…

AOJ 0033 - Ball

問題文はこちら テストインプットを0033.txtから開いているのでそのままでは通らない。 解答 def solve(balls): right, left = [0], [0] while balls: ball = balls.pop(0) if ball > right[-1]: right.append(ball) elif ball > left[-1]: left.append(ball…

n人の中で誕生日が同じ人がいる確率

問題 Birthday Paradox « Programming Praxis 23人いる場合、そこに誕生日が同じ人がいる確率は50%である。57人の場合は99%だ。 これは確率の知識として知られている。 シミュレーションによってこれを確かめよう。 解 うるう年は考慮しない。 from __future…

CoffeeScriptでProject Euler #13

Problem 13 以下の50桁の数字100個の総和の上位10桁を求めよ。 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 ...省略... 53503534226472524250874054075591789781264330331690省略したリストは…

CoffeeScriptでProject Euler #12

Problem 12 Problem 12 - PukiWikiを参照 Solution 解いた手順は次の通り。 三角数を素因数分解する(factorize)。 同じ素因数を数え上げる(count)。 約数の個数は同じ素因数の個数がわかっていれば公式的に求まる。約数 - Wikipedia参照。 count = (xs) -> o…

Challenge #101 [easy] (Non-repeating years) : dailyprogrammer

問題 [9/27/2012] Challenge #101 [easy] (Non-repeating years) : dailyprogrammer (年を表す)数字を桁ごとに見たとき、重複のないものだけを選ぶ問題。 たとえば1980から1987までの間で考えると、1がふたつある1981を除く(1980, 1982, 1983, 1984, 1985,…

Pygameでラングトンの蟻(Langton's Ant)

ラングトンのアリ - Wikipedia描いてみただけ。 ソース ちょうてきとう。 # -*- coding: utf-8 -*- import sys import pygame from pygame.locals import * FPS = 30 width, height = 800, 600 BLACK = (0, 0, 0) WHITE = (255, 255, 255) RED = (255, 0, 0)…

Python/PILで画像にノイズをかけ各種フィルタで除去する

PIL特有の機能を使わずにピクセル操作から自力実装する。 Python Imaging Library Handbook 流れ ノイズ付加 ごま塩ノイズ(Salt-pepper Noise) ガウシアンノイズ?(Gaussian Noise)→ よくわからなかった ノイズ除去 移動平均法(Mean Filter) ガウシアン…

Python/PILによる画像のグレイスケール化とアスキーアート化

これを見ていたら手がうずうずしてきたので描いてみた。Cool Ascii Animation using an Image Sprite, Canvas, and Javascriptリンク先はカラー画像(JavaマスコットキャラのDukeくん)をCanvasで グレイスケール化し、 輝度にあわせてアスキーアートに変換し…