ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

情報処理への未練

もう数学のほうメインに移ってから2年ほど経ってしまうサイバー少年であります。
F#を半年前くらいにやっていましたが、じゃんけんゲームしか作ってないですし…。

サルでもわかる小遣い帳」を完成させられたことはプログラミングに対するいい思い出なのですが、ちょっと情報処理方面の成果としては小さすぎるかなという未練がありますね~。

一番の未練はPICマイコンと、プログラムのライターを買ったのに、何もしていないことですね。


数学という論理的思考の遊び場に足を踏み入れたキッカケはプログラミングですし、今の私の学問に対する志みたいなものの基礎を作ったのは、プログラミングなんですよね。

数学を現在やっていますが、ずっと頭を使いすぎて疲れたのか分かりませんが、最近は頭のキレが悪いです。

というわけで、ちょっと情報処理の方面に“帰省”しようかな、と思ったりしています。

情報処理はまあ、アルゴリズムとかは難しいですが、基本的には数学よりは頭を使うというか知識力を重視する学問ですから、今のコンディションならそっちのほうがいい…のか??

正直、集中力とかより記憶力の低下のほうがシビアですので、より不適当かもしれませんが…。


ただ、ちょっと数学の頭を使うハードワークから、一時的に逃避したいなと考えております。
将来の夢は数学教授ですが、んなもんなれるかボケということならプログラマーになると思います。
となると、一時的どころか人生をプログラミングとともに寄り添っていかなければなりません。

ただ、プログラミングの世界って日進月歩ですので、職業プログラマである以上そこについていかなければならないわけですよ。
そんなバイタリティもないんですが…。

続きを読む

tag: 勉強 資格 プログラミング 情報 目標 FE 能力

勉強のモチベーションと限界と

最近は数学を何時間も通してする機会がいくらかありました。
特に先月は数学4部作として、4つも数学についての記事を書いたわけで、当然その裏では記事を書くために考察に時間を費やしていました。

昔と比べて、最近はだいぶ数学などの勉強をする頻度や時間が増えていますね~。

もちろん、勉強しなければという義務感があって、勉強を成し遂げたときの充実感はすごくあるのですが、疲労感が溜まっていって今月はどうも疲れてしまいましたね。

やはり限界というものがありますね…。


正直、もともと数学が好きでやっているというより、数学で分からないことがあって、分からないままにしておくのが気分が悪いので、分かる状態になりたいという思いから数学やってるんですよね。

まあ結果だけみると数学をやるモチベーションがあるということになるのだと思いますが。

でも、これって諸刃の剣といいますか、分からないということのストレスを裏で抱えて数学やってますので、それがまあ分かるようになったときの達成感でカバーされているのですが、ぜんぜん分からない場合にはストレスばかり溜まってしまいます。


というのはいいとして、なんにせよ最近は数学をやりすぎて疲れてしまいました。

最近は疲労でペースも落ちて、数学との関わりもYahoo!知恵袋でちょっと分からないところを聞く程度でしたね。
(姉妹ブログの記事「Yahoo!知恵袋で長丁場」を参照)


疲れた原因というのは、数時間、数学をやるというのをいくらか繰り返しただけなんですけどね~。
ヘタレだなと思います。

大学の数学教授になりたいと言っていますが、まずなれるかという問題もあることながら、なってしまった場合に、数学漬けの人生になりますからね。

このヘタレな自分がやっていけるのかというのは不安です。
というか、大学教授になる以前に、大学で数学科に入ってやっていけるのでしょうか。

続きを読む

tag: 数学 勉強 プログラミング 目標 職業 モチベーション 休暇 クソ記事

数学ネタは人気が出ないのか…

先日、記事「PowerShellでジェネリックス!」にて、

ありがとう 参考になりました

というコメントを頂きました。


このブログの方針として、何か疑問に思ったことを検索したらこのブログがヒットして、それを見て疑問が解決する、みたいなブログになりたいと考えているので、
このようなコメントを頂けたのはとても光栄なのですが、

数学ネタをメインにしていくのは閲覧者のニーズに合致しているのか…!!??


なんか数学のネタに全然コメントが来ないし、このまえ記事「数学の勉強について雑記…」に一回だけ来ましたけど情報系の学部の大学生の方でしたし、

当ブログの閲覧者ってやっぱりプログラマとかプログラミング好きとかそういう方々だと思うんですよね。


まあプログラマというと数学好きを兼ねてる割合が高めだと思うんですが、数学好きじゃない人も多いですし、数学好きだとしても数学メインじゃないからコメントできるほど数学の知識もなかったり、数学の長文の記事を読むつもりもない、みたいな感じですか。


数学に傾倒したら駄目なのかチクショーーー!!!!!
どうやったら数学屋の方々にたくさん見てもらえるブログになれるんでしょうか。

ただ、数学好きの方々に見てもらえない理由はいくつか思い当たるんですけどね。


・数学好きの絶対数がプログラミング好きより少ない。

・プログラミング好きの人はブログなどのインターネットの文献を重要視している一方で、数学好きは書籍とか見てて、Webでもブログみたいなのは見ない。

・とくに当ブログのような新規性のないクソブログは見ない。


そもそも当ブログの閲覧者がほぼリピーターで固定であると思われるというのもあるので、既存の閲覧者に数学好きになってもらうしかない!!!

頑張れ閲覧者!!!!!!

続きを読む

tag: 勉強 数学 ブログ 閲覧者 プログラミング コメント 群環体 方程式

やはり数学力がない

群・環・体ですが、三月はまったく勉強をせず、四月に入っても前半は勉強をせず数日前になってようやく再開したんですが、しばらく勉強しないと理解力が衰えるもんですね。

久しぶりに本を開いたら意味不明でビビりました。
まあ、2回目以降はそれなりに理解力も復活してきましたけどね。


前回記事「将来の夢について書く」で数学科の大学教授になりたいと書きましたが、このごろ自分の数学力のなさを再認識させられて、やっぱり無理じゃねえかなと思ってしまいますね~。

いや、何度も申しますが理論を読んで理解するのは大丈夫なんです。
しかしその理論に関する証明問題などの問題を出されると、もう出来ないと。

大学で数学科に入ったら、講義で教えている理論をちゃんと理解しているかどうかを確認するために証明問題などを出題するということがよくあると思うんですが、そういうのは多分、私にはなかなか出来ないんじゃないかと思いますね。

問題が解けなければ、「こいつは理論を理解していない」と判断されかねないですが、決して理論を理解していないわけではないんですけどね。
ただ私の脳に入り込んで理論を理解しているかどうかをチェックするなんて無理なんで、問題を出すという方法でチェックするしかない。

なかなか、つらいですね…。


昔も書いたかもしれないですが、理論をどうやって重ねていくかの道筋を立てることが出来ないわけです。
スタートから一気にゴールに行けるような証明を考えるんですが、そんなのあるわけないと。

あと、普通の人って紙などにちょっとずつ思考している内容を記録していくみたいに、紙を使って証明するということも多いと思いますが、それが私には無理なんですよね。

頭の中のイメージをどのように紙に記せばいいのか戸惑いますし、戸惑っている間に考えていたことを忘れてしまうのです。
さらに、もし紙に記せたとしても、そこから元のイメージを復元するのに時間がかかる。

だから、それでスタートからゴールに一気に行かざるをえないというのもありますね。


証明を組み立てる力って身に付くんですかね。

私にとっては論理の世界というのはすごくぼんやりしていて、なんの目印もない広大な砂漠を歩いているようなもので、どこを歩けばいいのやら分からないですが、

数学の教授や数学が得意な人は、正しい歩き方を知っているのでしょうか。

続きを読む

tag: 数学 プログラミング 勉強 能力 幾何学 目標 大学

F#の基礎勉強まとめ (後編)

記事「F#の基礎勉強まとめ (前編)」の続きです。
前編を読んでいない場合は、F#の知識がない限り前編から読むことをお奨めします。

今回は、かなり長くなることが予想されますね。


最初に、前編で書いたことの訂正というか、多相型についての発見があったので記しておきます。

まず、多相型の名前は'aのようにシングルクォーテーションとアルファベットだと説明しましたが、実際はシングルクォーテーションと任意の名前で多相型を表せるようです。
処理系が多相型であると推論したときは自動的にアルファベット一文字が使われるというだけのことで、自分で書く多相型の名前はなんでもありです。


そして、関数の引数が多相型になる場合があると説明しましたが、引数の型が多相型であると明示できるようです。
そのためには後述するパターンの型注釈を使用して、型名を多相型にします。

let func (x:'a) = x

しかし、多相型の引数であると明示したとしても、たとえば

let func2 (x:'a) = x + 1

と書いたらxはint型しかありえません。
このように型を限定するようなコードを書いたら多相型がもっと狭い型へと“制約”されてしまうので、なんでもかんでも多相型に出来るわけではありません。

さらに言ってしまえば変数でも型注釈で多相型に出来てしまうのですが、値を入れた段階で多相型がその型へ“制約”されてしまうので、多相型の変数というのも宣言できません。


また、同じスコープ内で複数回、同じ名前の多相型を使う場合、それら全てが同一の型であるという前提のもとで上手な型推論が行われます。

たとえば
let func3 (x:'a) = let val:'a = x in val
これはvalの型はxと同じで、xは多相型ですからxに与えた引数によってvalの型や戻り値の型が決まるようなジェネリックな関数です。

let func4 (x:'a) = let val:'a = 3 in val
これはvalの宣言によって'aがint型に“制約”されるので、この関数に与える引数はint型でなければなりません。


この話題は依然として謎深く、個人的にさらなる研究が必要そうです。

続きを読む

tag: プログラミング F# 関数型 勉強まとめ 例外 リスト ジェネリックス パターン

近況報告というか話題のちゃんぽん

ただいま、記事「F#の基礎勉強まとめ (前編)」の後編を執筆中であります。
途中つなぎの記事を書くほど大規模なブログ記事を書くのは久しぶりですね。

現在、リスト、配列、タプル、レコードまで書き終わったのですが、判別共用体、パターンマッチ、例外を書いて手短に終わろうと思います。

ただし、パターンマッチが本当に内容的に濃い!
大変ですね。

さて、上記リンクの記事でも書いてあるように、F#の文法は解説しても、実際にプログラム書いたことがほぼ無いんですよね~。

というわけで、ちょっと前ですが、なにかプログラムを書こうということで、なんともベタなじゃんけんのプログラムを書きました。

せっかくなのでYahoo!ボックスに上げておきましたから、ご覧ください。
なにせF#の経験が浅いので、変な箇所があるかもしれませんが、ぷぷぷ~と笑ってないでコメントにてご指摘下さいませ。

Janken.txt (Yahoo!ボックス)
http://yahoo.jp/box/_9_RYk


このプログラムを書きながら思ったのですが、関数に引数として別の関数の戻り値を渡してもいいし、
関数に直接、別の関数を渡しちゃって、むこうの関数で引数を与えて戻り値を作ってもいい、というこの関数と値の区別のルーズさは特徴的ですね。

今回の場合は逆にそれがややこしくなって、変なプログラムになってしまったかもしれませんが…。

続きを読む

tag: プログラミング F# 数学 証明 論理学 勉強 群環体 結合法則 Nexus iPad

F#の基礎勉強まとめ (前編)

ついにやってまいりました。
今までF#の勉強をしてきたわけですが、勉強に使っているサイトで基礎編とされている部分を読んでいまして、とうとう読み終わったので内容をご紹介したいと思います。

学んだ文法を使って実際にプログラムを書けるかというと、まだちゃんとしたプログラムを書いたことはないし、正直、書ける気がしないんですけどね…。
記事「2017年 新年のご感想」でも書きましたが、文法を学ぶことと実際にプログラムを書くスキルを身につけることは別物なんだと思います。

それも含めて自然言語と人工言語という違いはあれど、新しいプログラミング言語を学ぶことは英語などの外国語を学ぶことと似ていると、今回F#の勉強をして思いましたね。

新しい言語機能を覚えれば新しい表現が可能なこと、それは他の言語機能で代用しても近い表現をすることは出来るのですが、新しい言語機能を使うほうが便利です。


というわけで、実践的なプログラムの解説をすることはスキル上の問題で出来ませんが、文法の解説をしていきます。

なお、めちゃくちゃ長くなることが予想されたので前編と後編に分けることにしました。

続きを読む

tag: プログラミング F# 関数型 関数 勉強まとめ

コンピュータは数学をできるか

あのアインシュタインは「本で調べればわかるものを暗記する必要はない」と言っていたそうです。

たしかに暗記というのは、まあ人間のすごいところで現在置かれている状況と記憶を照らし合わせて最適な知識を引き出す、みたいな人間の検索能力も合わせて考えれば価値のある行為だと思うんですが、

ただ覚えるだけという暗記自体の価値はあんまり…ないかなという印象を持ちますね。
それは、メモ帳などのツールを使えばいいじゃん、という話で済むからです。


一方で、物事を考えるという行為はなかなかツールで代替するということができませんでした。

たとえば私の好きな数学も論理的思考をするというのが基本ですので、これは機械にはこなせない仕事だということで数学者たちは誇りをもって数学をやっていたと思います。

まあ時にそれは、以前もブログに書いたかもしれませんが、記憶力、知識力メインでやってる学問に従事する人を見下すというか、
「覚えてないことは本とかネットで調べればいいじゃん。まあ数学は俺らにしかできないけどねー君たちは本やネットで代用できる能力身に付けて嬉しいの?」(私の若干の悪意によって誇張されてしまったセリフですが…)
と思ってる側面があるんですけどね。まあそれはいいとして。


しかしながら、この頃はコンピュータを使用してAI(人工知能)のプログラムを走らせることによって、コンピュータに物事を考えさせるということが可能になってきました。

たとえば将棋なんかもコンピュータがだいぶ強くなってきましたよね。

そして機械にはできない学問の代表格であった数学でさえも、まだ遠い未来の話ではあると思うんですが、思うにオワコン化が始まっているというか、コンピュータにその仕事を奪われる時代が到来するのではないかと感じました。

私はAIに詳しくないので、細かいことはよくわからないのですが、コンピュータに定理を証明させることが可能です。

たとえばCoqとかいうやつを使えば証明させられるんじゃないですかねぇ。
(意識低い系発言。Coqもやってみるべきだろうか…)

実は数理論理学によって論理の仕組みをかなり機械的に考察できるようになったことで、数学みたいな論理を軸にした学問はコンピュータによる代替の恰好の餌食になっている、と思います。


ただ、コンピュータに難しそうなのは数学の中で得られた知見を現実世界の何に応用できるか考えることや、逆にそもそも現実世界に応用することを目的にして数学の研究をすることですね。

現実世界も論理で割り切れないということは決して無いと思うんですが、なんにせよ複雑ですから、数学の中だけでゲームみたいにやるほうがよほど簡単だと思いますね。

あとプログラミングも、計算機科学の枠組みだけでやるならコンピュータにも簡単になる時代が来ると思うんですが、人間にわかりやすいシステムを作るとなると機械には理解できないことが多くて難しいのではないでしょうか。


やはり人間の気持ちを理解するというのはコンピュータには難しいでしょうね。
ですから、数学がコンピュータに仕事を奪われてもなお、カウンセラーみたいな職業は人間が担当することになると思います。

心理学も統計ゲーみたいなところがあるようですので、一部をコンピュータで代替するというのも不可能ではないと思いますけどね。

というわけで、まともな記事を書くにはあまりにも知識がなさすぎる状態でこんな記事を書いて、やっぱりまともな記事を書くことはできませんでした。


しかし、私のようにプログラミングだとか数学をやってる人も機械に仕事を奪われると思うと、安心できませんよね~。

まあ遠い未来だとは思うので、少なくとも我々が死ぬまでこういう職業が人間にしかこなせない高貴な職業であれば嬉しいんですけどね。

tag: コンピュータ 人工知能 論理学 プログラミング 数学 証明 暗記 クソ記事

2017年 新年のご感想

あけましておめでとうございます!!!!!!


新年のご感想を記事にします!!
天皇陛下かよ!!

昨年末の記事でも同じネタを書いて使いまわしですが、時事ネタを今年は記事タイトルに使ってみました。

新年の記事は1月3日までに書きたいと姉妹ブログ「サイバー少年のつまらない事ですが」に書きましたが、ほんのちょっと遅れてしまいましたね。

まあこの記事を書き始めた時刻はギリギリ3日なので、セーフでしょう。


新年、2017年が始まりましたね~。
あらためまして、あけましておめでとうございます。

去年を振り返るというのは昨年末の記事でやりましたし、近況報告というか最近に興味のある物事を書くというのも、昨年12月の記事「何番煎じだ!?近況報告」でやってしまったので、今回書くことがないんですよね。

記事にするネタのなさから近況報告を記事にしてしまいましたが、頑張って他のネタでつなぐべきだったな~。


こうなってしまうと新年の抱負を書いてネタにするかとも思うのですが、去年と同じように特に抱負を設定しないというスタンスを踏襲したいんですけどね。
(記事「2016年 新年のご挨拶&去年の抱負大懺悔式典」を参照)

まあ、軽い目標程度は書きますか。

続きを読む

tag: 新年 目標 数学 F# 論理学 自然演繹 プログラミング コンピュータ 勉強 モチベーション

気がつけば年の暮れ 2016

こんばんは。真夜中ですね~。
生活リズムがぐちゃぐちゃですね~。
よろしいことではない…。

今年も終わりますね~。
今年は本当に早かったですね。

最近、なんとも年寄りじみた発言ですが、目まぐるしく時が過ぎていくので今年が西暦何年とかすぐに答えられるかと問われますと、危うくなってきました。

西暦はまだいいですが、和暦なんてもう出ないですね。
その西暦優位の感覚はちょっと若いのかな。
そうそう、あと、自分の年齢も同じように、すぐに出ないですよね。


当記事の本題に入る前にざっと年末の近況報告をしますが、前回記事「何番煎じだ!?近況報告」で書いた群・環・体のモチベーションが上がらないというのが、なんとまだ続いております。

さすがにヤバいですね…。
まあ上記記事でも書いた(さらに前の記事を引用した)のですが、ダラダラが続いてヤバいなと思い始めるのが、次の勉強を頑張る時期へと突入する原動力になるんですけどね。


一方でF#は、上記記事で書いたとおり勉強の頻度が少ないことを無視すれば順調…かと思われるのですが、姉妹ブログにも書きましたが最近なんか難しくなってきました。

次は判別共用体というのを勉強するんですが以前に内容をざっと見てみたら、今までで一番、難しそうでしたので理解できるかどうか不安ですね。

ただまあ、もし順調に事が運べば本年末に勉強したことまとめを書いて、来年に新年の挨拶記事なんかを書いて、来年の通常の記事の一発目はF#の勉強内容をまとめる記事になるんじゃないですかねぇ(他人事)。

続きを読む

tag: 数学 プログラミング 論理学 F# 群環体 勉強 パソコン 新年 目標

次のページ

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。