すごブロ

「好き」をブチ抜く

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

プログラミング

【コンピュータは数学者になれるのか?】 人工知能は数学できるか?数学するとは何か?

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

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

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

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

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

Pythonで数学パズル 天秤で異なるコインを見つけよ リストのスライス

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

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

記事の内容 今回の記事は、プログラミングの問題としてはそこそこ有名な「Nクイーン問題」をPythonで解いてみます。「問題解決の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 =…