Haskell : タプルとリストの相互変換

-- convertlist.hs-- 各種convertのプログラム。-> 練習問題-- 1.タプルとリストの相互変換 -> [[1,2],[3,4]] -> [(1,2),(3,4)]-- 2.タプルから2つのリストへ相互変換 -> [(1,'a'),(2,'b')] -> [1,2]['a','b']-- 3.タプルからフラットリストへ相互変換 -> [(…

Haskellで行番号をつける

問題 : 任意のテキストファイルの各行に行番号をつけて画面に出すプログラムを作れ。 解答例 -- numberlines.hs-- runghc numberlines.hs filename import Data.Listimport System.Environmentimport Text.Printf main :: IO ()main = do args <- getArgs co…

Haskellのランダムについて

Hakellは関数型言語で参照透過性とかを保証するために、同じことをやったら同じ結果が出ることが保証されているために、randomについてはちょっとというか相当ややこしい。 いまの私の理解は以下のようなものですが、これで合ってるか。 import System.Rando…

Ubuntuのマウスポインターを大きくする

マウスのポインターを大きくする方法です。 目が悪くなってきたのと、起動時に無線マウスの反応が悪くて、マウスの矢印がすこしでも大きいといいかな、と思い探してやってみました。うまく行ったのでご報告。 環境はUbuntu 16.04です。 echo "Xcursor.size: …

SageMathとグラフ理論(オイラーの公式)

問題 車輪グラフついて、オイラーの公式(Euler's formula)が成り立つことを確認せよ。 オイラーの公式: $$ n - m + f = 2 $$ : 頂点の数、: 辺の数、: 面の数 %histG=graphs.WheelGraph(8)show(G)len(list(G.vertex_iterator())) # -> 8len(list(G.edge_ite…

アイデア: エレキギターハンガー

ダイソー 車のシートフック という自動車のヘッドレストのポールにつける二連のフックがあります。 これがギターハンガーにならないか、というアイデアです。 みかけはギターハンガーにそっくりです。 とりあえず買ってきて、合わせてみたところ自分のエレキ…

SageMathでグラフ理論(TABの使い方)

SageMathでグラフに関係してどんな関数があるか、とか調べるときにタブ補完(Tab completion)を使います。 たとえば、グラフを書きたいとき、 G=graphs.<TAB> と押すと、200個ほどの関数がある。 また、G=Graph()としたうえで、 G.<TAB> と押すと、グラフに使える関数が</tab></tab>…

SageMathとグラフ理論(平面グラフ)

問題12.1(i) 頂点数5の車輪Wheel、が平面グラフであることをグラフで示せ。(ii) octahedron(八面体)が平面グラフであることをグラフで示せ。 すなおに描くと平面グラフになってしまう。 問題の意図としては必ずしも平面グラフでないものを平面グラフ的(plana…

SageMathでグラフ理論(クラトウスキーの定理)

THEOREM 12.2(Kuratowski, 1930). A graph is planar if and only if it contains no subgraph homeomorphic to or . グラフが平面グラフであるための必要十分条件はが またはと位相同型な部分グラフを含まないことである。 THEOREM 12.3 A graph is planar …

SageMathとグラフ理論(次数の数列とグラフ的について)

次数(degree)の数列を与えられて単純グラフ(ループや多重辺がないグラフ)が描けるかどうか(グラフ的)かどうかを問う問題があります。 例えば[3,3,3,3,3,3]だと3点と3点の完全二部グラフが描けますのでグラフ的である、という解答が載っていたりする。 し…

SageMathとグラフ理論(接続行列incidence matrix)

接続行列からでもグラフがかけるか実験します。 接続行列Mで与えられるグラフを描け。 M=matrix(5,8,[[0,0,1,1,1,1,1,0],[0,1,0,1,0,0,0,1],[0,0,0,0,0,0,0,1],[1,0,1,0,1,0,1,0],[1,1,0,0,0,1,0,0]]) G=Graph(M)show(G) 描けました。 ということは、接続行…

SageMathとグラフ理論(連結グラフ)

introduction to graph theory by wilsonのp.11のFig.2.9は頂点が5個までの連結グラフ(connected unlabelled graph)で、31個ある。 これを作る。 (なぜならテキストの練習問題で何度も使われるから。例えば、この内、ツリーはどれとどれか。とか。) sage: …

SageMathとグラフ理論(隣接行列、接続行列、ラプラシアン(キルヒホフ)行列)

まず、ひとつグラフを作ります。 V=['P','Q','R','S','T']E=[['P','Q'],['Q','R'],['R','S'],['S','T'],['T','P'],['P','S'],['Q','T'],['Q','S']]g=Graph([V,E]) 隣接行列 sage: g.adjacency_matrix()[0 1 0 1 1][1 0 1 1 1][0 1 0 1 0][1 1 1 0 1][1 1 0 1…

SageMathとグラフ理論(カノニカル行列)

Pythonのdictionaryの形で次のように指定すると、グラフが描けます。 g1=Graph({'P':['Q','S','T'],'Q':['R','S','T'],'R':['S'],'S':['T']})show(g1) これはうまい具合に横向きになったし、なによりも頂点がアルファベット順ですがいつも必ずしもそうではあ…

SageMathとグラフ理論(全域木)

下記のグラフのすべての全域木(spanning tree)を描け。 g=Graph([['a','b'],['b','c'],['c','d'],['d','a'],['a','c']]) [p1,p2,p3,p4,p5,p6,p7,p8]=map (plot, g.spanning_trees()) graphics_array((p1,p2,p3,p4,p5,p6,p7,p8),2,4) 同様に次のグラフのspan…

SageMathとグラフ理論(ツリー)

頂点が6個の単純グラフでツリーがいくつ作れるか。 6個のようです。 以下、図とSageMathのプログラムです。 pythonのfilterを使ってみました。 pythonでmapやfilterが使えるのを知らなかったし、lambdaにグラフを入れられるのも知らなかったし、is_treeで選…

SageMathとグラフ理論(プラトングラフ)

プラトングラフとは正四面体、正八面体、立方体、正十二面体グラフと正二十面体グラフのことだそうです。 とりあえずSageMathでグラフで表現することができたのでご紹介。 # platonic.sage# plot five platonic graphs.# attach('platonic.sage') p1=plot(gr…

SageMathとグラフ理論(同型判定、カノニカルラベル)

グラフが同型である、ということの定義はこれこれ(要確認)、同型であることを判定する関数はG,Hをグラフとすると、 G.is_isomorphic(H) とかであろう、と予想されます(未確認)。 ところでグラフが同型であることのアルゴリズムはカノニカル(canonical)型に…

SageMathでグラフ理論

SageMathでグラフを描く描き方はいろいろあるみたいです。 空(カラ)のグラフを作って、頂点や辺を加えていく描き方。 g=Graph()g.add_vertices(range(6))g.add_edges([(0,3),(1,3),(2,3),(2,4),(2,5)])show(g) 次のは頂点と隣接する辺をPythonの辞書にして…

SageMathでグラフ理論

WilsonのIntroduction to Graph Theoryに、図のGrötzschグラフがハミルトングラフであることを示せ、という練習問題がありました。 SageMathでこういった名前がついたグラフを描くのはとても簡単です。 sage: g=graphs.GrotzschGraph()sage: show(g) graphs…

SageMath LaTeX Error: File `preview.sty' not found.

数学ソフトのSageMathのドキュメントでConstructionsというのの最初の方に、次のような例があって、 sage: var('x k w')sage: f = x^3 * e^(k*x) * sin(w*x)sage: f.diff(x)sage: latex(f.diff(x))sage: view(f.diff(x)) 最後の一行で、LaTexに画像変換され…

広瀬すずが持ち上げているバーベルの重さ

広瀬すずがバーベルスクワットしている写真がかっこいいですが、これ何kgもちあげているのだろう。 たぶん10kgのプレート2枚と2.5kgのプレート2枚。これで25kg。それにシャフトの重さ10kgを足して、35kgではないでしょうか。 普通のウエイトトレーニングのプ…

Texmaker

最近数学関係のテキストを読むのが趣味になって、PDFでダウンロードするのですが、相当数がTeXで書かれています。わたしもなにか書いてみようと思って、TeXで書くための環境を整え始めました。 Texmakerという環境が便利らしい。エディター部分があって、そ…

かゆみ止めにお灸

いつも書いていますが、蚊に刺されたり、蕁麻疹だったり痒いところにはホットタオルがとても効きます。先日、エンボスヒーターがホットタオル、蒸しタオルがわりになることを書きましたが、近所のダイソーに行ったら、お灸を売っていました。これもホットタ…

小冊子印刷分冊のアイデア

数学やプログラミングの有名なテキストがインターネットで読むことができます。むろん本でも出ているのですが、あちらの本はたいへん高い。翻訳がでればそれでも高いけどそこそこの値段で手に入るようになります。なぜでしょう。たぶん価格と売れ行きのカー…

ウエストゴムのゆるめかたとクラッシュアイスの作り方。ホットタオルの代用。

ウエストゴムが縫い込んである服でゴムがきついときにはどうしたらよいか、と考えて糸をこまかく外して切れ目を入れるとかしかないかなぁ、とネットで検索してみたら熱いアイロンをかければいいって。やってみたら大成功です。ゴムが伸びてそのままになって…

サラダチキンの食べ方

サラダチキンはしょっぱすぎると思います。 ウエイトトレーニングを始めたので、プロテインとかサラダチキンとかでタンパク質を補給したいのですが、せっかく安くて、効率のいいサラダチキンがしょっぱくて食べられない。 で、水で洗ってみたりしたのですが…

Netflixで中国語音声字幕の映画とドラマ

Netflixで英語の勉強をしている方は多いと思います。音声英語で英語字幕でみるとほんとに勉強になります。英語の字幕見てもわからないときはちょっと戻して、日本語字幕にして、見直す、聞き直す、のも簡単。 中国語で同じことができるかと思うと、そもそも…

地球温暖化はフェイクニュースか

フェイクニュースの最大のものは地球温暖化さわぎだろう、と思っていました。そう思っている人多いよね。 だって、いまは氷河期のあとの間氷期で、氷河期は10万年ごとで、間氷期は1,2万年しか続かないのだから。どう考えたって次の氷河期を遅らせるだけじゃ…

アメリカがシリアの空軍基地を巡航ミサイルで攻撃

アメリカが地中海の米軍駆逐艦からシリアの空軍基地を巡航ミサイルでピンポイント攻撃したとのことで、現在のわたしの感想をかいておきます。 まず、仕方ない。 なぜ仕方ないかというと化学兵器を使ったら攻撃するという公約なので、化学兵器が使われたのだ…