ガジェット通信

見たことのないものを見に行こう

データビジュアライゼーションから圏論・Haskellまで──プログラマのための数学勉強会【第6回】

DATE:
  • ガジェット通信を≫

今回のテーマと目次

「プログラマのための数学勉強会」第6回のセッションテーマは以下のとおり。

心地よさと数字 難易度★☆☆
数学がデジタルアートに! 高速なシェーダで可視化する数学の世界 難易度★☆☆
Wolfram Language コトハジメ ~ Wolfram Alpha って聞いたことあります? 難易度★☆☆
暗号文のままで計算しよう – 準同型暗号入門 難易度★★☆
圏論とHaskellは仲良し 難易度★★☆

人間の認知能力に合わせて数字を抽象化「データビジュアライゼーション」

最初に登壇したのは、矢崎裕一さん。セッションタイトルは「心地よさと数字」。
矢崎さんはデザイナーで、「数字やプログラミングには携わるが、文系」とのこと。ポータルサイトなどのインタフェースデザインやロゴの作成などを行っている。

またCode for Tokyo(市民が主体の地域課題解決に取り組むコミュニティ作り支援、テクノロジーを活用したアクションを創発する活動)、およびData Visualization Japanという活動を主宰している。

データビジュアライゼーションとは、人間の認知能力に合わせて抽象化して、特徴を理解できるようにすることである。数字の羅列より、それらを抽象化して伝えることで行動が変わったり、記憶に残ったりする。

その例として矢崎さんが見せたのが次の絵だ。これは都道府県の間を移動する人の数を可視化したモノだ。左が北海道、右が沖縄になっており、人がどの点からどの点に移動したのか、その量を線で表すとこのような絵になるという。

引用したデータは総務省の政府統計データ。「このデータの裏側には人がいるんだということを示したくて、先のような図を作った」と矢崎さんは説明する。

そのほかにもロゴを自動生成する「Open Data Logo Generator」やヨーグルトの栄養成分比較も作成。

さらにJavaScriptのd3.jsにある乱数を生成する関数で、4種類の乱数を円やチャートで見える化するというツールなどを披露した。

「ビジュアライズは物の見方。例えば北斗七星は、中国では雲の上に座っている王朝だが、ギリシャでは熊、日本の場合は柄杓というイメージで捉えられている。そこに何を生み出すかはその人の価値観や文化的背景にもよっても異なる。その違いが面白い」と矢崎さんは語る。

杉浦康平氏が作った時間軸変形地図もその一つだ。東京から各周辺の都市に移動にかかる時間を軸に地図にすると、地図は大きく変形する。

また出発地点をどこに置くかでも見える景色の全体像がガラリと変わる。Google Mapは俯瞰(統治型の地図)だが、杉浦氏の時間軸変形地図は自分自身の居る場所によって全体像が動的に変わる、「主観的な地図」ということができる。

「このように同じデータだけど多角的な見方を用意することで視野が多角的になる。いろいろな表現ができる。それがデータビジュアライゼーションの魅力だ」と矢崎さんは力強く語る。

可視化して自分にとって心地よさを追求する

矢崎さんはデータで絵を描くワークショップも開催している。渋谷区の1カ月の天気を絵に描いてみるというワークショップも行っている。データを見える化するには、さまざまなビジュアル変数が関わってくる。

どういう組み合わせがふさわしいのか、大まかにガイドライン化して共有し、アウトサイダー・アート(既成の表現方法に一切とらわれることないこと)なあり方で、絵としての面白さ、心地よさを追求してもらったという。

そうすることで「新しいチャートやグラフが誕生した」と矢崎さんは語る。優れたインタラクションデザインには信頼性、妥当性、賢明さ、敏速さ、巧妙さ、遊び心、心地よさという特徴を持つが、その中でも心地よさに価値を置くのは、「時代のトレンドに左右されない」からだ

大事なことは「すでに完成していると思われるモノを疑い、自分にとっての心地よさを追求してみることだ」と矢崎さんは言う。

例えば日本酒の獺祭は、これまでの当時という職人による技術からデータによる管理を中心とした集団体制で作っている。変わりゆくモノ(気温、水質、お米の質…)に原理・原則、可視化することで変わらぬ味を作っているというわけだ。

これは獺祭に限らない。可視化により、サービスやプロダクト、世の中のルールが心地よいモノに変わるのではないか。最後にこう問いかけ、矢崎さんのセッションは終了した。

☆矢崎裕一さんの【講演資料】・【講演動画】

目次に戻る

高速なシェーダで数字をデジタルアートに

続いて登壇したのは、h_doxasというハンドルネームで活動している杉本昌広さん。セッションタイトルは「数学がデジタルアートに!高速なシェーダで可視化する数学の世界」。

WebGLが大好きという杉本さんは、「WebGLやシェーダを体験してもらうことで、楽しさを知ってほしい」と語る。

WebGLはOpenGL ESのJavaScript版。グラフィックスに特化しているAPIで、GPUを利用した処理を行うことができるので、ハードウェアの視絵役を受けやすいという特性がある。

PCであればすべてのモダンブラウザで実行可能。またモバイルにおいてもiOS8以降のSafari、Android5以降の組み込みブラウザなら実行可能だ。

「今回はWebGLを使って、GLSLと呼ばれるシェーダ言語を記述してみる」と杉本さんは語り説明を続けた。

GLSLはOpenGL専用のシェーダを書くための言語である。GLSLはWebGLやOpenGLだけではなく、Unityでも利用できる。

今回、数学勉強会でGLSLを説明する理由についても、杉本さんは解説した。GLSLは実行環境に搭載されているGPUを利用することで非常に高速な描画処理を行うことができる。

高速なGLSLの特製を活用すれば、数学的な模様やフラクタルなども高速描画できるようになる。つまり「数学に関心のある人なら、これに慣れてしまえばすごく映像を生み出すことができるはず」というわけだ。

環境を用意するのは手間がかかるため、杉本さんが作成したGLSLエディタを使い、実際にシェーダを記述していく様を披露した。

GLSLエディタとはフラグメントシェーダを記述できるWebGLのエディタで、フラグメント(断片)という言葉からもわかる通り、シェーダはスクリーンのピクセル上で実行されるというのがポイントとなっている。同エディタの使い方は次の通り。

Windowsなら Ctrl + s、Macなら Command + sで実行
Escキーで停止(放置すると危険)
URLにGLSLのコードを全展開する荒業式
URLは短縮URLに変換できるのでシェアも簡単にできる
HTMLファイルとしてダウンロードも可能
マウス座標も取れる

GLSLエディタで直感的に描画

「シェードを気軽にシェアできるツールとして使ってほしい」と杉本さん。もちろん使う上で最低限必要な知識がある。それはUniform変数である。このUniform変数とはJavaScriptか動的に値をシェーダに渡すために使われる変数。スクリーンの解像度やマウスカーソルの位置、経過時間という情報が送られてくる。

またもう一つ必要になるのが、次の2種類の組み込みの変数だ。「この2種類の変数も覚えておいてほしい」と杉本さんは語る。

gl_FragCoord: 今から処理しようとしているピクセル座標
gl_FragColor:最終的に何色を出力するのか、RGBAを0.0~1.0の範囲で出力

GLSLエディタではスクリーンの各ピクセルを走査する、フラグメントシェーダのコードが記述できる。JavaScriptからスクリーンの解像度やマウス座標が送られてくるので、GLSLエディタ上で「gl_FragCoord」を参照する。

すると今からどのピクセルの色を塗ろうとしているのかがわかるので、何かしらの色を、「gl_FragColor」に出力する。ここまで説明して、「実際にGLSLエディタを使って、シェーダを記述してみよう」と参加者に呼びかけ、杉本さんは手順を説明しながらデモを実施した。

GLSLエディタでは、Vec4やVec3というベクトル系の組み込み系の変数の型があるので、直感的に描いていけるという。また正方行列(2×2など)とかが使えるため、座標を回転させるなど細かい制御もできるようになる。

最後に杉本さんは「映画やCGアニメーションの世界のようなハイエンドなCGを描画するのは難しいが、簡単なシェーダを気軽に記述して、シェア機能などを使って、おのおの楽しんでほしい。数学の勉強やアルゴリズムの可視化などにGLSLを使うのがお勧め。数学もCGでも楽しくやるのが一番。ぜひ楽しんで使ってほしい」と語った。

☆h_doxasさんの【講演資料】・【講演動画】

目次に戻る

Wolfram Alphaで遊んでみよう

3番目に登壇したのは、ヒューリンクスの若林登さん。セッションタイトルは「Wolfram Language コトハジメ」。

「Wolfram Language」とは、イギリス人のStephen Wloframという人名が由来である。Wolframは非常に頭の良い人物で、カリフォルニア工科大学での年休の時に、自分の数式を処理するために作ったのがMathematica(その原型)だったという。

余談だが、Mathematicaという名称は、スティーブ・ジョブスがつけたそう。その後、Mathematicaはどんどん発展、Computational Engine、Wolfram|Alphaというサービスが開始されたことから、2~3年前よりMathematicaで記述する言語を含めその体系を「Wolfram Language」と呼ばれるようになったのだ。

Wolfram Alphaは、単語(英語)を入れるとWolframが持っている数値化されたデータから何か情報を引っ張ってくるというもの。例えば「Cheeseburger」を入力すると、トータルカロリーや脂肪分やコレステロール値などの数値が出てくる。

また「Today」と入力すると、日没などの数字が出てくる。「Triangle and circle」と入力すると三角形と円が表示されるが、「Triangle in a circle」に変えると、円の中に三角形が入った図形が表示され、「少し数学っぽくなる」と若林さん。

「Wolfram Alphaは日本語版には対応しておらず、次に対応するのは中国語らしい」とのこと。「数式やプログラムを入れると結果が返ってくる。コードを書いている時にどういうものが出てくるのか調べてみたいときにも便利に使える」と説明。

というのも、Wolfram Alphaは後ろでMathematicaが動いているからだ。従って、数式を入力するとその計算結果を返してくれる。どのように返してくるか、実際に実行する若林さん。

例えば「x3-6 x2+4 x+12」のグラフを描いてもらうこともできる。検索窓に「plot x^3 – 6x^2 + 4x + 12」と入力すれば以下のようなグラフが表示される。

また「Sin(x) x Cos(y)」という3次元グラフも容易に描くことができる(「plot sin(x)*cos(y)」と入力)。

Wolfram Languageとは何か

「これがWolfram Languageかというとそうではない。これは自然言語を処理しているだけ」と若林さんは続ける。

Worfram MathematicaやMathmatica Onlineで使うプログラミング言語を「Wolfram Language」と呼ぶ。今までWolfram Alphaも自然言語をWolfram Languageに変換して、Mathematicaのグリッド版「gridMathematica」に食わせているという。

同じ式やグラフをPythonで記述するよりもお金はかかるが「楽にできる」。

Mathematicaは他のプログラムで言うところのIDEだが、普通のIDEと違うところがある。最大の特徴は「インタラクティブ性」だ。作成したファイルはノートブックと呼ばれ、「自分で思考経路をノートのように書いていく感じ」だそう。

思考と実証を繰り返しながら、計算の目的地に到達するというのが、Mathematicaのコンセプトなのだ。しかも変数の定義を考える必要はない。

PythonよりもWolfram Languageがいかに簡単に記述できるか、以下のプログラムを見れば一目瞭然だろう。

またa と b を変化させるスライドバーと、その移動にあわせてグラフを書くのも、Pythonの場合、結構行数が必要になる。一方、Wolfram Languageの場合は、1行書くだけで、勝手にスライダーとかを作ってくれる。

3次元の場合も、Pythonではマウスの位置をとって回すということを記述するのは面倒だが、Wolfram Languageの場合は2次元同様1行書くだけで完了する。しかもアニメーションにすると 3次元なので自由に回すこともでき、動きを確認して次に進むという思考回路で進められる。

書く行数が少ないだけではない。「シンボリックに簡単に計算できるのもWolfram Languageの良さだ」と若林さんは強調する。

Wolfram Languageの場合は、Solveという関数を使えば簡単に書けるため、非常に見やすい。トラディショナルのフォームとプログラミング的な感じで結果の2種類を切り替えできるからだ。

さらに微分方程式を解いてみることも、DSolveという関数を使えば、1行で書くことができる。これもWolfram Alphaでできる。Wolfram Languageのコードをそのまま検索窓に入れると、結果が返ってくるからだ。1行か2行のコードで計算式が書ける場合は、お金を払わなくてもWolfram Alphaを使えば答えが返ってくる。

Wolfram Languageがプログラムを短く書けるのは、関数が多いためだ。つまり、関数を覚えるのが大変というデメリットはあるが、短く書けるため思考の邪魔をしないというのが最大のメリット。Wolfram Alphaは無料なのでぜひ遊んでほしい。

☆若林登さんの【講演資料】・【講演動画】

目次に戻る

暗号文のまま計算できる準同型暗号

4番目に登壇したのは、光成滋生さん。セッションタイトルは「暗号文のままで計算しよう 準同型暗号入門」。「今回の発表の目的は準同形暗号の紹介。その実例として楕円曲線暗号のデモを実施。完全準同型暗号の原理と雰囲気も紹介する」と語る。

光成さんは昨年、「クラウドを支えるこれからの暗号技術」という著書を発行。準同型暗号について書かれている和書は現時点でこの本のみだそう。

まずは暗号化とは何かということから説明はスタートした。暗号化とは暗号文から平文の情報が得られないようにすることである。

秘密の文章を暗号化すると、ホワイトノイズと区別できず、圧縮もできないというように、何もできなくなる。つまりクライアントで暗号化すると、クラウドでは検索も計算もなにもできない。クラウドのCPUパワーももちろん生かせない。

だからこそ「暗号化したまま処理したいという気持ちが沸く」と光成さん。それに応えるのが、準同型暗号なのだ。これは「暗号化したまま計算できる暗号方式」だ。

準同型があると、例えばクライアントで生徒や学生の身長や体重を暗号化してサーバにアップロードしても、クラウドで暗号化したまま平均値などを計算して返すこともできる。

たとえクラウドからデータが漏れたとしても暗号化されているので、安心。暗号化された2個のベクトルの内積を計算できるので、マッチングや集合演算、ロジスティック回帰などができる。

「各社・組織が注力しているジャンルだ」と光成さんは力強く語り、その一例として、NICT(情報通信研究機構)や富士通、日立製作所などでの取り組み例を紹介し、楕円ElGamalを用いた加法準同型暗号のデモを実施した。

楕円曲線は楕円と曲線から成るが、楕円でも曲線でもなく、浮き輪の表面(トーラスと呼ばれるモノ)に近い。複素数的な意味で曲線(1次元)なので、実数的には2次元となり、この上で計算(足し算)して暗号を作っていくのである。

ではどうやって足し算をするのか。楕円曲線は切り開くと、長方形になり、その長方形上の2個のベクトルを足すのである。足してはみ出たら、反対側に回り込ませるということで定義する。

一方、引き算はベクトルの向きを反対にする。pの逆元は-pになる。こうすればトーラスの上で足し算が自由自在にできるようになる。

楕円曲線には重要な性質があるという。「楕円曲線では点Pをn倍するのは容易だが、逆にn倍された点nPからnを求めるのは容易ではない」と語る。楕円離散対数問題が困難だからだ。

次の様なパラメータ設定を行い、楕円曲線暗号を作っていく。

暗号化は楕円曲線状の点(メッセージM)に対して、乱数rを選ぶ。

公開鍵(P,Q)に対して、Enc(M)=(r P,M+r Q)という暗号文をつくる。これを見た人はPとQは知っており、M+rQを求めようとするが、他人はrPからrを求められない。

復号は暗号文C=(C1,C2)に対して秘密鍵xを使って、Dec(C)=C2−xC1とし、元に戻ることを確認する。

これが楕円ElGamal暗号である。
楕円曲線はy2=x3+ax+bではないかと思うかもしれない。トーラスとの関係については、「楕円曲線入門『トーラスと楕円曲線のつながり』というスライドを見て欲しい」と光成さんは説明する。

「加法準同型暗号」「完全準同型」とは?

続いて加法準同型暗号について。「暗号化したままどうして足し算するのか」。これについても光成さんは解説を行った。次のように2つの暗号文を用意して成分ごとに足してみるというのだ。

するとこれは加法準同型という性質を満たしているという。楕円曲線ライブラリについては、GitHubにコードを置いている。

また「自前のJITアセンブラ(Xbyak)も作っている」と光成さんは言う。これはC++のコード。「これを使ってペアリング暗号を実装しており、世界最速だ」と言う。

最後は完全準同型の紹介。何が完全なのか。「これまで足し算だけができる暗号やかけ算だけができる暗号は構成できたが、足し算とかけ算の両方ができる暗号は2009年に達成するまでなかった。

つまり足し算とかけ算の両方ができる暗号は長年の夢だった」と説明を続ける。0と1の世界で足し算はxor、かけ算はandに相当する。つまりxorとandがあれば任意の関数を構成できる。「だから完全」というわけだ。

例えば行列のかけ算。

このようにノイズが入ると、As+e=bとなるs,eを求めることは非常に難しくなる。秘密の値を知っている人はeを除去でして計算できるが、他の人はできないからだ。暗号文は「平文mの情報」+「小さいノイズ」で構成される。

現在、完全準同型は活発に研究開発されており、例えば一部制限はあるものの「Somewhat HE(SHE)」はその一例だ。さらに回数制限のないFHEという構成手法が検討されているという。

☆光成滋生さんの【講演資料】・【講演動画】

目次に戻る

数学の中でも最も抽象的な「圏論」とは?

最後に登壇したのは2月29日に法政大学で最終講義を行い、同大学を退官したばかりの大森健児さん。セッションタイトルは「圏論とHaskellは仲良し」。

大森さんは大学紛争のまっただ中に東京大学を卒業。その後、アメリカに留学した。カリフォルニア大学バークレー校に留学。日本電気に就職し16年間、コンピュータのアーキテクチャの開発に携わった。85年に課長に就任。6カ月後に退職し、法政大学で教育に携わるようになり、現在に至る。

そんな大森さんだが、今回のテーマである圏論の勉強を始めたのは、なんと68才のとき。圏論は、数学の中でも最も抽象的で、それぞれの分野をケント紙、それらに共通するものを扱う。カテゴリーは一つの圏論の概念になる。

カテゴリには「集合の圏」「モノイドの圏」「郡の圏」「ベクトル空間の圏」「グラフの圏」「実数の集合と連続関数の圏」「位相空間の圏」「デカルトの閉圏」がある。圏とは数学のベースの塊的なもので、1.対象(集合:要素の集まり)、2.射(関数)、3.ソース、ターゲット、4.恒等射、5.合成(結合率)という構造を持っている。

例えば集合と写像の圏は次のような図で表せる。

こちらはグラフの圏の例。

自然数の加算の例。

射は0や1などの自然数そのものが射。
恒等射は0
合成は+となる。
「これは圏論を学ぶときに変だなと思う最初の部分」と大森さんは言う。関数は複数の要素を変数と捉え、n変数にするのが面倒なので、1変数にする。

それがカリー化で、+nと記述する。「圏論に慣れるためには、自分の得意の分野がどういうふうに表現できるのかを訓練すると良い」と大森さんはアドバイスする。

関手とは、圏から圏への対応でその構造と両立するようなもの。次の図を見ればわかるとおり、圏Cから圏Dへの関手F:C→Dとは、圏Cの対象Aを圏Dの対象F(A)に対応付け、圏Cの 射f: A→Bを圏Dの対象F(f)に対応付ける関数の組で、次の二つの条件を満たすものである。

Cの任意の二つの射f: A→B,g: B→Cに対して、F(g・f)= F(g)・F(f)である。
Cの任意の対象Aに対して、F (1 A )=1 F(A)である。

関手が使えるようになると、さまざまな武器が使えるようになる。米田の補題はその一例だ。これは「射の集合から対象の集合に移すことができるという定理」と大森さんは説明する。

圏論の中で一番大事なのが、「随伴関手だ」と大森氏は力強く語る。大森さんは中学生の職場体験を例に随伴関手の説明を行った。

写真は赤ちゃんをあやしているところで、写真の中学生は赤ちゃんとコミュニケーションを取っている。

その場面をイメージしてこれを随伴関手で表すと「圏B:赤ん坊の世界 雑音」「圏A:中学生の世界 会話」となる。

赤ん坊の「あ、う、ぎゃあ」と言う音がLという関手で中学生に移っていく。中学生はその音を自分たちの言葉で解釈して、赤ちゃんをあやす。そうすると赤ん坊は中学生の言葉を聞いて理解をする。それを表しているのがRだ。つまり赤ん坊が理解していることと中学生が理解していることが同じだというのが随伴関手。

またもう一つ、圏論の中で重要なのが、「Universal Properties(普遍性)」である。積の定義もその一つ。対象B1, B2の積とは、対象P、射p1:P→B1, p2:P→B2からなり、次の条件を満足するものである。

任意の対象Xと任意の射f1:X→B1, f2:X→B2が与えられた時、以下の図式が可換となるようなu:X→Pが唯一つ存在する。このとき、PはB1×B2と表す。

最大公約数や和集合もUniversal Propertyである。

圏論をベースにしたプログラミング言語「Haskell」

ここで話題はカテゴリー(圏論)をベースにしたプログラミング言語「Haskell」に。Haskellは関数型言語の代表といってもよい。圏論が登場したのは1945年。関数型言語の走りはLISPで、その後、Schemeでオブジェクト指向的な考え方が入り、90年にHaskell1.0が登場した。

ある時間での速度と位置を求める場合の関数は、

となる。これと同じような書き方をしたいというのが、Haskellの元々の考え方だと大森さんは説明する。

プログラミング言語はどのように処理をすればいいのかという風に書いていくのに対し、Haskellは構造的に書いていく。

filterPrimeとは先頭の自然数とその後の自然数の列を取ってくるという関数。先頭の数は素数なので、そのままとってくる。後ろの方はpの倍数は全部除いてくださいということなので、この後にはpの倍数はすべて省く。それを繰り返すと素数が出てくる。

クイックソートはもっと簡単に求めることができる。

Haskellと圏論とはどういう関係か。またHaskellではモナド(計算を表現する構造)が出てくる。

純粋な世界は変数を変えないが、実世界は値を変えても良い。実世界のことを知りたいときに、計算は純粋な世界で行うと大森さんは説明する。モナドの例としては入出力、ファイル、Maybe例外処理が起こったときだという。

モナドの利点はドメインの固有言語が簡単にできること。その例として大森さんは関数型リアクティブプログラミングを見せ、「ロボットやゲーム、シミュレーションに応用できる」と説明。

その場合には用意するモノある。それは振る舞いとイベントである。音楽を例にすると振る舞いは曲、イベントは打鍵。つまりピアノを弾くことによってある曲が流れるということができるのが、関数型リアクティブプログラミングだ。

関数型リアクティブプログラミングの活用例として、大森さんは重心座標系を用いてビリヤード台で衝突し合う2つのボールのデモを披露した。

「このプログラムはGitHubに載せているので、関心のある人は見てほしい」と大森さんは説明を続けた。「従来のプログラムの書き方とは異なるが、プログラムの論理的なミス、初歩的なエラーはコンパイル時に検出されるので、自分の意図通りに動かすことができる」(大森さん)。

さらに勉強したい人のために書籍を紹介。次の2冊を紹介した。一つはコンピュータサイエンス分野の人向けにカテゴリーセオリについて書かれている「CATEGORY THEORY FOR THE SIENCES」(David I.Spivak著)。もう一冊は「Functional Reactive Programming」。

大森さんは気に入っていないそうだが、リアクティブプログラミングについて書かれている書籍は同書しかないので、「これで勉強してほしい」と言う。

☆大森健児さんさんの【講演資料】・【講演動画】

また大森さんのブログ「bitterharvest’s diary」にも、圏論やHaskellに関する記事がたくさんアップされている。

目次に戻る

より数学好きに訴える9本のLTで数学三昧

本編のセッション終了後、一人5~10分間のLTが9本行われた。LTでは数学とプログラミングに関する限り何を話してもOKというスタンスなので、バラエティに富んだ発表が行われた。タイトルを列挙すると次の通りとなる。

「√2をつくる」@taketo1024
「実践Scaraでペアノの公理」@busterdayo
「せいほうけい育成日記」@nekonenene
「packing にまつわるアレコレ」@simizut22
「Introducing PONS」@dankogai
「すべての図形を分類した男」@matsumoring
「かんたんベジェ曲線」@butchi_y
「ベータ分布の謎に迫る」@kenmatsu4
「始代数とCatamorphism」 Ryo Mikami

今回の数学勉強会も数学好きな人にとってはたまらないネタの宝庫だった。

当日の動画・資料などは、イベント主催者の【佐野岳人さんのブログ】で紹介されているので、興味のあるテーマがあればチェックしてみよう。また、「数学に関心がある」という方は、ぜひ次回の勉強会に参加してみてほしい。

(Special Thanks:佐野岳人@taketo1024さん 撮影:馬場彩さん)

*「プログラマのための数学勉強会」とは、その名の通りプログラマを対象とした数学を学習するための勉強会である。プログラマと銘打ってはいるが高校数学(初等関数、ベクトル、確率など)レベルの知識を持っている人、仕事で使う数学の理解を深めたい、他の領域で使われる数学に興味がある、単に数学が好きという人であれば、学生や他の職種の方ももちろん参加可能。☆コミュニティぺージはこちら

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP