好きをブチ抜く

「好き」をブチ抜く

本、映画、科学、哲学、心理、すごい人の考え方など。あらゆる情報を編集したい。

【Webの基本を確認したい】WebサーバからWebブラウザにコンテンツが届くまで

記事の内容 IPアドレスってなんや? DNSサーバってなんだ? ブラウザとサーバって、どうつながりあってるの? みなさんこんにちは、メタです。 今回も好きをぶち抜いていきましょう! この記事では、WEB技術の基礎をまとめます。 参考にした本はこちらです。…

Pythonで数学パズル入門 組み合わせの再帰生成「両替する方法」

記事の内容 初歩的なプログラムの知識だけで解ける数学パズルの問題を紹介します。プログラミング入門者の方にとっては、数学パズルはアルゴリズム的思考の訓練になります。楽しみながら慣れていきましょう。プログラム入門者の方、python入門者のかたにおす…

2つの自然数が互いに素である確率にπが!?【プログラムで実験して確かめる】python

記事の内容 今回の記事では、数学的にもプログラミング的にもとても興味深いテーマを紹介します。数学youtuberの鈴木貫太郎さんが紹介していた話です。www.youtube.com それは、2つの自然数が互いに素である確率は、である、というものです。もう少し説明し…

Lisp入門 条件分岐【Land of Lisp勉強メモ#4】

記事の内容 Lisp入門の勉強として、書籍『Land of Lisp』の内容をまとめる。 今回は、第4章条件分岐についてだ。 対称性という感覚を持ちながら、学んでいきたい。 記事の内容 nilと()の対称性 条件分岐 ifとその仲間たち 条件式のテクニック 比較関数の方針…

Lisp入門 リストとコンスセル 【Land of Lisp勉強メモ#3】

記事の内容 Lisp入門として、書籍Land of Lispの内容をまとめていく。 今回の記事では、3章の内容について勉強する。 シンタックスとセマンティクス、リストとコンスセルについてだ。 記事の内容 Lispの形式と意味 Lispはコードとデータをどう区別するか リ…

Lisp入門 変数と関数【Land of Lisp勉強メモ#2】

記事の内容 Lisp入門書である「Land of Lisp」の勉強メモ。 第2章の内容についてのまとめ。 プログラムを書く土台となる変数と関数の定義方法について学習。この記事にまとめてみる。 記事の内容 グローバル、ローカルな変数と関数 コマンドまとめ 関連記事 …

Pythonで平方根を求める 2分探索の利用【Pythonで数学パズル】

記事の内容 今回は、pythonに慣れるために簡単な数学パズルのようなものに挑戦します。そのテーマは、「平方根を求める」です。どのようにコードを欠けば、効率よくある数の平方根を求めることができるのか、いろいろと工夫してみましょう。python初心者の方…

プログラミング無料学習サイトCODEPREPを使ってみた感想

記事の内容 最近では、どんどんプログラミングの重要性が認識されてきました。それにともない、プログラミングの学習環境も、たくさん発展してきています。 そんな中、ウェブ上で無料で学習することができるサイトもあります。 今回は、そんな無料で学習でき…

【PyTorch使ってみた】深層学習入門実践 手書き数字画像データMNIST

記事の内容 今回は、深層学習(ディープラーニング)を手軽に実装するためのライブラリである「pytorch」を紹介します。 実際に、深層学習入門の定番である、手書き文字認識にチャレンジしてみます。・深層学習の基礎はなんとなくわかっている ・pytorchを使っ…

証明=プログラム!? 【カリーハワード同型対応】 計算と論理の奥深い関係

この記事の問いと内容 論理と計算との間には深い関係がある。現在のコンピュータサイエンスでは、その応用範囲は広い。 ・計算可能であるとはどういうことか? →理念 ・具体的には、どのようにして計算は行われるのか? →計算モデル論 ・計算手順をうまく記…

【数理論理学、数学基礎論、プログラム理論、計算論】 おすすめ入門本 まとめ

記事の内容 この記事では、数理論理学、数学基礎論、プログラム理論、計算論などの分野にまたがるおすすめな本を紹介したい。 軸として、「コンピュータは数学者になれるか」という本を挙げたい。この本では、巻末にて、さらなる専門書が紹介されている。こ…

【コンピュータは数学者になれるのか?】 人工知能は数学できるか?「証明すること」を深ぼる

この記事の問いと内容 この記事では、「コンピュータは数学者になれるのか 数学基礎論から証明とプログラムの理論へ」という本を紹介したい。数学、論理学、人工知能、プログラムをまたぐ、とんでもなくエキサイティングな本になっている。 ・数学するという…

Haskell 【関数と型 入門】 関数、多引数関数の正体に注意

記事の内容 関数型言語であるHaskellについてまとめたい。今回の記事では、おもに、「関数と型」についてまとめる。Haskellを使用する際には、中心的な概念になる。この使い方こそ、手続き型言語とは、大きく違うところである。関数型言語の特徴をつかむため…

Pythonで数学パズル 最適な関係の組み合わせ 最大独立集合問題

記事の内容 今回の記事では、基礎的な知識だけで解ける数学パズルを紹介します。プログラミング、python初心者にとってはいい練習になるはずです。それに、アルゴリズムで問題を解くということのいい実践になります。 専門的には、最大独立集合問題と呼ばれ…

Pythonで数学パズル 天秤で異なるコインを見つけよ 分割統治法

記事の内容 アルゴリズムの練習として有名なものに、「天秤を使って偽造硬貨を見つける」というパズルがあります。今回の記事では、この問題をpythonで解いてみます。基礎的な文法さえわかれば挑戦できるパズルなので、ぜひ初心者の方もチャレンジしてみてく…

Pythonで数学パズル 8クイーン問題を解く forとcontinue

記事の内容 今回の記事は、プログラミングの問題としてはそこそこ有名な「Nクイーン問題」をPythonで解いてみます。「問題解決のpythonプログラミング 数学パズルで鍛えるアルゴリズム思考法」という本からの引用になります。本書は、pythonを用いて基礎的な…

Pythonで数学パズル タプルのリストとソートでパズルを解く

記事の内容 「問題解決のPythonプログラミング 数学パズルで鍛えるアルゴリズム的思考法」という本を紹介します。 この本に載っているパズルを解きながら、楽しくアルゴリズムを学べる記事になります。 Python初心者の方にも、プログラミング初心者の方にも…

Pythonで数学パズル リストとタプルのちょっとした応用

記事の内容今回の記事では、「問題解決のPythonプログラミング 数学パズルで鍛えるアルゴリズム的思考」という本で紹介されている簡単な数学パズルを解きたいと思う。難易度も優しく、基礎的なコードを知っていれば楽しむことができる。 プログラミング初心…

【遊戯王と論理的思考】楽しく学べて教育にいいんじゃない?

遊戯王って楽しいし、頭も鍛えられる!! 突然ですが、遊戯王というカードゲームを知っていますか? そして、やっていて「頭も鍛えられるじゃん!」と感じたことはないでしょうか? 私自身、そう感じています。楽しみながら頭も鍛えられるカードゲームってす…

チューリングの考えるキカイ 【書評・まとめ】 コンピュータにできることとできないこと

記事の内容 ・チューリングのどんなアイデアが、コンピュータサイエンスの基礎になっているのか ・AIには何ができて何ができないのか ・「計算する」とはどういうことか ・万能チューリング機械でも、「計算できない問題」とは何か コンピュータの発展は、現…

【ゲーデルの不完全性定理】入門案内 おすすめ本まとめ

不完全性定理に興味ある人へ 「ゲーデルの不完全性定理」という言葉、みなさんは聞いたことがあるでしょうか?簡単に言うと、その名前の通り、数学(の一部)におけるある限界を示した定理です。私自身、この定理の存在を知って以来、その人類の英知の香りに…

【ひろゆき名言】とにかくまずは完成させろ!動かせ!!

プログラミング、ものづくりの姿勢 プログラミングやものづくりの姿勢において、ひろゆき氏の考え方がためになりました。ブログ運営も含め、すべてのものづくりに通じます。とくに、初心者の方にとっては重要なところです。 ・プログラミングの学習を投げ出…

Haskell入門③ 再帰

こちらのページでまとめています。 qiita.com

Haskell入門② パターンマッチ

値を手軽に分解する方法パターンマッチ ある種のデータが従うべきパターンを指定できる。引数の構造で場合分けする。関数定義の際に、パターンマッチを使って、関数の本体を場合分けできる。これによって、読みやすいコードが書ける。 sayMe :: Int -> Strin…

Haskell入門① リスト内包表記

リスク内包表記についてまとめます。 Prelude> [x*2 | x <- [1 .. 10]] [2,4,6,8,10,12,14,16,18,20] リスト[1 .. 10]から要素を取り出し、その値をxが受けとるという意味。 | より前の部分は出力を表す。 条件(述語)を追加できるのが便利。 Prelude> [x*2…

Python フィボナッチ数 数値の各桁の和

この本から出題 プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2015/10/16メディア: Kindle版この商品を含むブログ (9件) を見る Q11フィボナッチ数列 フィボナッチ数列のうち…

行列をpythonで

なぜ行列を使いたいのか? 行列を使うとたくさんの連立方程式を一つの式で表せる。行列表記がとても便利。 リストとベクトルは違う! a0 = [1,2,3] + [1,2,3] >>[1, 2, 3, 1, 2, 3] ベクトルはnumpyで import numpy as np x1 = np.array([1,2,3]) print(x1) …

リスト探索をpythonで

線形探索 配列から要素を探索するアルゴリズム。 左端から順に、目的数と比較していく。 def liner_search(aList, val): for x in aList: if x == val: return True return False 2分探索 整列された配列から要素を探索するアルゴリズム。 配列の中心から目…

基本ソートをpythonで

バブルソート def bubble_sort(array): n = len(array) for i in range(n-1): for j in range(n-1,i,-1): #開始、終了、ステップ ''' iが左端。つまり最小値。左端であるiをソート済みにし、 開始n-1つまり右端に戻る。 ''' if array[j] < array[j-1]: tmp =…