Python
不在通知票を貼っておく。というか日本語の情報に飢えているので誰か包括的な解説を書いてほしいです。なんかできることが多すぎて私の手には余る。 MatplotlibのグラフやSympyの数式がインタラクティブ表示できる Markdown形式で文章を挿入できMathJaxも普…
問題文 [12/4/2012] Challenge #114 [Easy] Word ladder steps : dailyprogrammer ワード・ラダーは、単語を一度に一文字だけ変更することによって生成される単語の順列のことである。例: cold → cord → card → ward → warmこの問題では、四文字単語の辞書…
[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を返す。 入力 入力:数字のみを含むか含ま…
問題 Need help with a number theory problem(java) : learnprogramming 3桁の数に3桁の数を足して4桁の数にする式を考える。0〜9までの数字を一度ずつ使ってこの等式を表したとき、3つの数が最小になるような組み合わせはどれか。 http://programmingpraxi…
オフラインリアルタイムどう書く第三回の参考問題 #どう書く #yhpg #勉強会 #Ruby - Qiita 問題 野球のボールカウント・アウトカウントの遷移を計算する。(得点・ランナー・イニング の計算は不要) ただし、ストライク・ボール・ファウル・ヒット・ピッチ…
参考 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 問題 単語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 日数を取り、3, 14, 100の倍数日ごとに停止する発電所の稼働日数を返す関数を作る。 解答 def plant_online_days(day): online_day = 0 for i in range(1, day+1): if i…
問題 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 〜 横へな 2012.7.6 文字列形式で入力された先攻後攻の手から勝敗(引き分け)を判断する。 不正な入力は考慮しないが、不正な手(すでに置かれている場所に置こうとする)は考慮する。 解答 def tick_tack_toe(record): record = map(la…
問題 第2回 オフラインリアルタイムどう書くの参考問題 #勉強会 #どう書く #yhpg #Ruby #C - Qiita ある表記法に則った2値画像データを時計回りに90度回転させてもとの表記に戻す問題。 解答 一行あたりの処理単位がめちゃくちゃだけど、スライシング多用で…
[9/30/2012] Challenge #102 [easy] (Dice roller) : dailyprogrammer 問題 ダイス表記(dice notation)とは"AdB(+/-)C"という形式の文字列(A,B,Cは数)を受け取って以下の計算を行う記法である。 1からBまでの乱数(B面ダイス)をA回ふって合計する。 1の…
[10/18/2012] Challenge #104 [Hard] (Stack Attack) : dailyprogrammer 問題 あのDijkstraが発明した手法だそう。 説明 あなたは邪悪なエンジニアであり、D++という新しい言語を作ろうとしている。これはあなたのお気に入りの計算機科学者にちなんで"Dijkst…
[10/18/2012] Challenge #104 [Intermediate] (Bracket Racket) : dailyprogrammer 問題文 カッコ"()", カギカッコ"[]", 波カッコ"{}", 山カッコ"<>" を含む文字列がちゃんと対応して閉じているか確認する。 入力と出力の形式 入力は文字列、返り値は真偽値…
問題文はこちら テストインプットを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…
問題 Birthday Paradox « Programming Praxis 23人いる場合、そこに誕生日が同じ人がいる確率は50%である。57人の場合は99%だ。 これは確率の知識として知られている。 シミュレーションによってこれを確かめよう。 解 うるう年は考慮しない。 from __future…
問題 [9/27/2012] Challenge #101 [easy] (Non-repeating years) : dailyprogrammer (年を表す)数字を桁ごとに見たとき、重複のないものだけを選ぶ問題。 たとえば1980から1987までの間で考えると、1がふたつある1981を除く(1980, 1982, 1983, 1984, 1985,…
ラングトンのアリ - 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)…
PIL特有の機能を使わずにピクセル操作から自力実装する。 Python Imaging Library Handbook 流れ ノイズ付加 ごま塩ノイズ(Salt-pepper Noise) ガウシアンノイズ?(Gaussian Noise)→ よくわからなかった ノイズ除去 移動平均法(Mean Filter) ガウシアン…
これを見ていたら手がうずうずしてきたので描いてみた。Cool Ascii Animation using an Image Sprite, Canvas, and Javascriptリンク先はカラー画像(JavaマスコットキャラのDukeくん)をCanvasで グレイスケール化し、 輝度にあわせてアスキーアートに変換し…
もちろん宇宙際Teichmüller理論とか全然分からない。 計算機で何か分かればいいなというコンセプトでWikipediaをなぞりながら逐一プログラムを書いてゆく。ABC予想 - Wikipedia 数学の難問「ABC予想」、京大教授が解明か :日本経済新聞 ABC Conjecture «…
Let's take tea break | Code Puzzle 任天堂のクイズのやつ。 first_code.py if pow(m, 17) % 3569 == 915: return str(m) となる自然数 m を探す問題。range(10000)ぐらいまでとって総当たりすればよい。数学的に解けるかも? second_code.py あるルールに…
2012/09/03 高橋 直大 出典:日経ソフトウエア 2012年7月号 やわらか頭でアルゴリズムを10倍生かす - 第1回 幅優先探索の基本:ITpro [追記 解くと銘打ってますが間違いが多くて参考になりませんごめんなさい] 例題1 200円持ってコンビニに行きました。コン…
問題の定義はコラッツの問題 - Wikipediaを参照。 コードは簡単。数列の形で解を得るようにする。 def collatz(x): lists = [] while x != 1: x = x/2 if x%2 == 0 else x*3 + 1 lists.append(x) return lists ステップ数を得る場合はlenを使う。 len(collat…
文字列の配列を結合するさい、Pythonでは "".join(['1', '2', '3']) # => '123' という書き方をする。 区切り文字を入れたい場合は、以下のようにすればよい。 "_".join(['1', '2', '3']) # => '1_2_3' さて、RubyにおいてはArrayがjoinを持っていて、それぞ…
問題文 [2/12/2012] Challenge #4 [easy] : dailyprogrammer ランダムパスワードジェネレータを作りましょう! 解答 まず候補となる文字を用意しよう。 問題文リンク先の、トップバッターの解答者のように、 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS…
驚いたので書留めておく。Pythonのencodeとはいったい…うごごご "abcd".encode("rot13") # => nopq またdecryptも "nopq".decode("rot13") で一行で書ける。ワンライナーと呼ぶほどおしゃれなものではない。ときにPythonでカエサル暗号というと、import this…
redditのdailyprogrammerが楽しげです。 問題 Challenge #76 (Title case) : dailyprogrammer 文字列のそれぞれの単語の先頭文字を大文字にする(capitalize)関数を作る。ただしexceptionsで渡された単語は除いて。なおexceptionsに含まれるものであっても文…