kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

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

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (10)

「10.8.4 変数・記号・論理式」の続き 定義16 xの、n番目の後続数 定義17 nに対する"数項" (define (succ n x) (cond ((= n 0) x) (else (** (<> cf) (succ (- n 1) x))))) (define ( ̄ n) (succ n (<> c0))) 数項の" ̄"はちょっと無理がある気もしますが気…

とにかく達成

月末で半期末な金曜日ですが普通に定時退社して友人と飲み会へさて今日の小さな習慣を 書くネタはいくつかストックしてるんですけど、書こうと思うくらいの話は書き始めると5分で終わるとは行かなくなってしまいますブログ書いてもあと三つあるし そうか、飲…

微妙に時間が取れてないけど

今週はちょっと残業とかあって微妙に時間が取れてないんですがとりあえず小さな習慣分だけはクリアしてますていうかもうちょっとやってます 本来やろうと思ってる分に比べると少ないんですけどまあいいかなと でもこれが常態化しちゃったらダメなんでしょう…

後付けのルールを押し付けない

子供に後付けのルールを押し付けないように心がけています ウチは週末ほぼ必ず本屋に行くんですがそこでよく見かけるのが本を読んでる子供のところへ親が寄ってきて「ほらもう帰るわよ!いつまで読んでるの!」と言ってる風景 これの何が後付けかってことな…

Dynalistいいかも

Dynalist https://dynalist.io/ っていうアウトライナーのサービスがあります 後発だけあってWorkflowyの上位互換的なサービスになってます 無償で無制限のアイテムを作成可能なのがうれしい しかも申し込んでしばらくはProの機能が使えます 無償でも十分使…

(オッサンにとっての?)真理

食べ過ぎると体力を消費します背筋が苦しくなったり翌日疲れが出たり なんてことを思うようになったのは年を食ってからですかね学生の頃は焼肉食べに行けば当然食べ放題目の前に肉がある限り食べるっていう感じでしたいつの間にか食べ放題にするより量は少な…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (9)

「10.8.4 変数・記号・論理式」の続き ものは試しでprimeをこんな風にしてみました (define (prime n x) (let ((p (P n))) (if (CanDivide x p) p 0))) 素因数分解には必ず2から歯抜け無しで素数が出てくるという前提動かしてみると > (profile (paren (<> 7…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (8)

「10.8.4 変数・記号・論理式」 ここらへんから証明っぽくなってきます 定義11 xは"第n型"の"変数"である (define (IsVarBase p) (and (> p crp) (IsPrime p))) (define (IsVarType x n) (and (>= n 1) (∃ p ≦ x (and (IsVarBase p) (= x (expt p n)))))) こ…

2種類のキレイ好き

世界には2種類のキレイ好きがいるようですね ひとつめのキレイ好きは、そのまんまですがキレイだとうれしくて掃除するのも楽しいというタイプキレイ好きと言って思い浮かべるのはこっちでしょうか もうひとつのキレイ好きは、キレイなのが好きというより汚…

ハーディ『ある数学者の弁明』私家版翻訳、ですってよ

ハーディっていう数学者がいまして、自分には数学自体の功績よりもラマヌジャンを見つけて育てたっていう方が印象的な人なんですがなんかユニークな人でもあったみたいでこの人の書いた「ある数学者の弁明」って本が面白そうだな―読んでみたいなーと思ってい…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (7)

「10.8.3 列」の続きの続き このへんのMinの入れ子で時間がかかってるというのはありそうな話ですIsPrime以下は一応書き換え済みなのでこの範囲で高速化してみますか primeを書き直し素数が歯抜け無しで出てくるとは限らない、という前提はキープ ; 元のソー…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (6)

「10.8.3 列」の続き > (time (** 12 4)) ; [2 1]という列と[2]という列の連結 cpu time: 35571 real time: 35565 gc time: 1153 300 > (time (** 12 12)) ; [2 1]という列と[2 1]という列の連結 お返事がありません 書き直し ; 元のソース ;(define (M8 x y…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (5)

「10.8.3 列」 定義6 n番目の要素 (define (CanDivideByPower x n k) (CanDivide x (expt (prime n x) k))) (define (elm x n) (Min k ≦ x (and (CanDivideByPower x n k) (not (CanDivideByPower x n (+ k 1)))))) (P n)ではなく(prime n x)を使っているの…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (4)

「10.8.2 整数論」の続き (単位はミリ秒) > (time (P 8)) cpu time: 12989 real time: 12992 gc time: 1441 19 これだとテストもままならなくなりそうなのでもうちょっと速くなるようにしてみますか とりあえず簡単なところから ; もとの定義 ;(define (Ca…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (3)

「10.8.2 整数論」 このへんは単なる数の計算 定義1 割り切れる?関数名はできるだけ数学ガールに合わせていきます (define (CanDevide x d) (∃ n ≦ x (= x (* d n)))) 割り切れないときにx以下のnすべてについて試してしまってもったいないですがとりあえず…

「目で見る数学」

まんが数学史とかあったらいいんですけどね 娘が歴女になってしまいます - kb84tkhrのブログ とまでは行きませんがブックオフで「目で見る数学」って本を見つけました 目で見る数学―美しい数・形の世界 作者: ジョニーボール,Johnny Ball,山崎直美 出版社/メ…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (2)

「10.8.1 装備を整える」の続き 同様に∃x≦M[...]とmin x≦M[...]を定義します (define (∃≦ max f) (let loop ((x 1)) (cond ((> x max) #f) ((f x) #t) (else (loop (+ x 1)))))) (define-syntax (∃ stx) (syntax-parse stx #:literals (≦) [(_ v:id ≦ max:ex…

ゲーデルの不完全性定理の証明のアレをRacketで書いてみる (1)

数学ガールのゲーデル巻を読んでると、「定義1」から「定義46」までなんだかプログラムを読んでるみたいですよね?ですよね? 数学ガール/ゲーデルの不完全性定理 (数学ガールシリーズ 3) 作者: 結城浩 出版社/メーカー: SBクリエイティブ 発売日: 2009/10/2…

RacketのMacroを調べてみる (11)

ではSyntax: Meta-Programming Helpersを見ていきます 1 Parsing and Specifying Syntax ここではsyntax-parseとdefine-syntax-classを説明していく syntax-parseはsyntax patternにしたがって自動的にエラーメッセージを生成する 1.1 Introduction syntax-p…

スマホからbr

パラグラフにしないただの改行ってどうやって入れればいいのかなって 思ってたんですよね brタグってやつですね どうもこのスタイルじゃないと書けなくて PCから入れるときはShift+Enterでできるんですけど スマホからだと入らないみたいです もともと入れら…

RacketのMacroを調べてみる (10)

普通の関数でエラーに対応するには、エラーをチェックするコードを入れる以外に契約を用いたり、Typed (型付き) Racketを使うという手段があります マクロではこれまでfenderを入れたり、エラーチェックしてraise-syntax-errorを呼んだりしてましたが契約や…

アートコミック まんが西洋美術史 1〜3

この間ちらっと書いた「まんが西洋美術史」って本なんですけど思った以上によかったです娘もしっかり読んでます 3冊1000円以下で買えたことを考えると超お買い得定価で買ってても後悔はなかったと思います 思った以上に解説がかなりしっかりました 分量も多…

闇は近い?

今日はヨメがママ友といっしょだったんですけどねママ友のダンナの職場は休みが月4日しかないらしいんですよで「有給とかどうなってんの?」って聞いたら「有給?なにそれ?」って普通に聞き返されたらしくてびっくり営業時間が11時間くらいあるんだけど全員…

RacketのMacroを調べてみる (9)

今回はanaphoric ifの話から > (aif (big-long-calculation) (foo it) #f) って書くと、(big-long-calculation)が#fのときは当然#fを返しますがそうでないときは(big-long-calculation)の結果をitが覚えててくれる、というもの普通はletでいったん変数に入れ…

RacketのMacroを調べてみる (4)

なんと下書きだけしてアップしてなかった分が! ---- 再掲 > (define-syntax (our-if-v2 stx) (define xs (syntax->list stx)) (datum->syntax stx `(cond [,(cadr xs) ,(caddr xs)] [else ,(cadddr xs)]))) めでたい?dの数とか数えたくないですね?パター…

こんな日は

飲み会で遅くなると色々達成が難しいけどとにかく達成しておく って今日はもう終わっちゃってるけど!

本屋さんの端末

最近は多くの本屋さんに在庫が検索できる端末が設置されてますね便利になりました でもですね検索するような本ってあんまり在庫はなかったりするんですよねああ残念、と思ってあきらめて他の本屋に行ったり通販で買ったり まあその分の売上が上がらなかった…

RacketのMacroを調べてみる (8)

次の例ですちょっとエラー処理に凝ったりしてます 何をするかは説明するより見たほうが速いかな > (define js (hasheq 'a (hasheq 'b (hasheq 'c "value")))) > (hash.refs js.a.b.c) "value" hasheqというのはいわゆるハッシュテーブルを作る関数で、ここで…

子供の習慣づけにも使えるかなあ

今のところ途切れることなく順調に続いている小さな習慣ですがこれは子供にいい習慣を身につけさせるのにも応用できるでしょうか 脳内シミュレーションしてみました 「ねえ、毎日机に座ってノートを開くだけは必ずやるってことにしない?」「うんわかった!…

RacketのMacroを調べてみる (7)

ここまでの集大成としてstructもどきを作りますこんな風に使えるものです > (our-struct person (name age)) > (define p (person "john" 24)) > p '#(person "john" 24) > (person-name p) "john" > (person-age p) 24 では定義です (define-syntax (our-st…