プログラミング

2016年10月1日

日記Kotlin のコレクションは「readonly」であって「immutable」ではないらしい。 Java でいう Collections#unmodifiableXxxx みたいなもの? immutable って概念(言葉?)は結構広まっているので、immutable でないなら API ドキュメントに一言「この型の…

2016年9月28日

日記うーん、頭痛が。 頭痛の原因は身体が冷えてるからだと思ってたけど、変な暑さのぶり返しのせいで軽い熱中症というか脱水症状なのかも・・・?やっと『Scala スケーラブルプログラミング』第3版を読み出した。 とりあえず3版での新しい内容から。 ハッシ…

2016年9月21日

日記『Scalaスケーラブルプログラミング第3版』購入。 でも読むヒマなく本日終了。 表紙裏(?)にこの版での変更点が列挙してくれてるので、とりあえずそこからチェックしていこう。 最初から読んでいきたい気もするけど、確実に途中で挫折するw Scala 始め…

2016年8月23日

日記spire に EuclideanRing という型があるのだけど、これの除算による余りって0以上割る数未満になってたほうがよいのでは? 負の整数に関してそうはなっていない。 とは言っても、% 演算子の挙動を変えると EuclideanRing としての Int や Long がバグ誘…

2016年8月22日

日記3個以上の自然数の最小公倍数は素因数の和集合なので包除原理使って求める(求められる)のね。 コーディングするの面倒そうだったけど、Scala の(というか関数型言語に普通にありそうな)コレクションのメソッド使ったら結構簡単に書けた。 grouped と…

2016年8月21日

日記パスカルの三角形を使って組合せの個数(二項係数)を計算するアルゴリズム書いた wasan.hatenablog.com 次は階乗の公式を使って二項係数を計算するアルゴリズムを書く予定だけど、分数の約分するのに最大公約数の計算がいるので、まず最大公約数、最小…

2016年8月12日

日記久し振りに記事書いた。 wasan.hatenablog.com あと2~3記事分書くこと溜まってるんだが。 あと、早いとこ行列にいきたい。ふとなんじょるのさんのアルバム購入。 アルバムってか、デジタル版は1曲ずつしか販売されてないのだが・・・ カートに1曲ずつ入…

2016年8月11日

日記なんか無駄に末尾再帰でコードを書いてたので、コレクションの関数型メソッド(? map とか filter とか)使って書き直してたら思いの外コードが短くなって「いままでのは何だったんだ!?」状態。 まぁ、まだあんまりこういうメソッドに慣れ親しんでない…

2016年8月8日

日記そういえば、完全順列を生成するメソッドは書いたけど、個数だけを計算するメソッド書くの忘れてたな。 前に一般項導いたけど(こちら参照)、結果が和の形になってるので、漸化式から計算した方が速いかも?NHK スペシャルでトルーマン大統領が原爆投下…

2016年8月7日

日記プログラミングで順列をクラスとして抜き出したとき、順序付けを定義しようとしたんだが(Scala では、Ordered Java では Comparable を実装する)、ちょっと問題が。 最初、順列の2行記法での下段の数字の並びを使って辞書順序で定義しようとしたんだが…

2016年8月6日

日記『Java によるアルゴリズム事典』に載っている、順列と順列の番号の間の変換コード、コード書いても手で計算しても結果が合わなんなぁと思ったらその番号が単に一意に定まる番号ってだけで辞書順序での番号ではないだけだった。 うん、たしかに説明箇所…

2016年8月4日

日記『終末なにしてますか? 忙しいですか? 救ってもらっていいですか?』3巻読了。 新たな妖精さんも出てきて、地上へも行ってとちょっと新展開。 でも救われなさそうなヒロインさん。 うーん、読み終わったら即4巻買って最初読んじゃったよね。 でも4巻は…

2016年7月31日

日記重複順列・組合せや同じものを含む順列あたりが、テストも書けて一段落。 そう言えば通常の組合せの生成を、ビット演算を用いて生成するアルゴリズムがあるのを実装するの忘れてたな。 いい加減記事書こう。 久し振りに日曜に用がなかったのでもうちょっ…

2016年7月30日

日記重複順列、重複組合せと同じものを含む順列のコードがそれなりに書けたので、さぁテストを書こう。 テストコードは普通の順列、組合せのものをコピペしてちょっと修正すればそこまで面倒でなくできるはず・・・ とまぁ重複のあるやつはそんなに問題なく…

2016年7月29日

日記重複組合せの個数 で や が0のとき、二項係数との関係の公式 を使って計算しようとするとそのままでは計算できないので、負の整数で(よって全ての整数で)二項係数を計算できるように拡張。 昔に倭算数理研究所に記事書いたなぁ。 wasan.hatenablog.com…

2016年7月25日

日記ロシアの国家ぐるみでのドーピングに関して、NHK で有森裕子氏が「1人でもドーピングしていたらその国を出場停止にせよ」とか言ってた。 個人的にはオリンピックとかワールドカップ、というかスポーツ全般を全く観ないので、それで(日本人選手のドーピ…

2016年7月24日

日記『魔法科高校の劣等生』のデジタル版が出たので読んでみることに。 最初の辺りはアニメ観てたはずだけど、「こういう流れだったんか・・・」という箇所がいくつかあって、雑にしか観てなかったことを再確認。 Amazon では最初の数巻は評価が芳しくないよ…

2016年7月22日

日記『ポケモン GO』が遂に日本でもサービス開始。 まぁ別にやる気はないけど、端末が対応してるのか見てみたら非対応だった。 なぜでっしゃろ? 端末のせい? Android が 6.0.1 のせい? 普段使ってないタブレットだとインストールできたけど、いまいち AR …

2016年7月21日

日記面倒だからやめようかと思ってたけど、結局、部分順列も型として実装した。 どうせ組合せは型として定義することにしてたので、部分順列の実装もテストもそんなに手間はかからなかった。 組合せの方は前に書いたのからそんなに修正は要らなかったので、…

2016年6月30日

日記熱い物を食った覚えがないんだが舌がちょっと火傷したようにヒリヒリする。 はて。 マグネシウムだかなんだかの栄養が足りてなくて味覚障害でも出てきたのか。 野菜でも食っときゃいいんだっけ。置換を整数の写像として定義してたけど、任意の型のオブジ…

2016年6月29日

日記一応、置換を整数から整数の写像として扱え、かつ合成もできる実装が書けた。 が、自然な順序が定義されている場合にソートする必要があるので、ソートのアルゴリズムとかも Scala で書いてみようか。 ただ、ソートとか探索とかのアルゴリズムは普通に実…

2016年6月27日

日記なんか置換の初歩的っぽいことでつまってる。 Permutation トレイトを Int から Int への写像 (PartialFunction) として定義する(コードは Scala で書いてる): trait Permutation extends PartialFunction[Int, Int] class PermutationImpl(val suffi…

2016年6月23日

日記某 Web ラジオ聴いてて驚愕。 アラサーくらいの年齢なのに日本一広い湖が何で、それがどこの県にあるか知らねーって。 2人パーソナリティいて2人とも知らねーって。 片一方、大学出てるって。 どんなクソ大学だよ。 小学生でもほとんど知ってるだろうよ…

2016年6月18日

日記全てを並び替える順列(置換)じゃなく、一定個数を取り出して並べる(部分)順列をコーディングしてたら、通常使われる順列の記法と逆にした方が実装が楽そうな感じが。 数学で実際に置換を行う仕方って、同じ記法に対して2通りの流儀があるみたいだけ…

2016年6月15日

日記順列(置換)を生成するコードがそれなりにできて、次は組合せにしようかと思ったけど、よく考えると一部を取り出して並べる順列(部分順列?)とか同じものを含む順列とかもやらないといけない気が・・・ というか、並び替えたい Seq に等価なオブジェ…

2016年6月13日

日記プログラミングにて、リファクタリングで共通コードを抜き出すと、アルゴリズムを見せたい場合には分かりにくくなるときがあるなぁ。 でも、単に上手く抜き出せてないだけな気もするので悩ましい。 まぁでも、リファクタリングなんて、そもそも書き換え…

2016年6月11日

日記全置換を生成するコード、辞書順序になるように生成するアルゴリズムでも置換の符号を一緒に計算するのが結構簡単なようなので、実質的に1つのアルゴリズムで事足りるもよう。 あとはパフォーマンスがどうなのかというのくらしか比べることがなさそうだ…

2016年6月9日

日記カフェインの摂り過ぎなせいか、寝たいときに寝られないのに起きてても頭が重く感じて何もする気がしない、みたいな日がしばしば。 気温が暑くなってるせいもあるかもしれないけど。 とりあえずちょっとカフェインを抑えようかと思うのだが、水分とるた…

2016年6月8日

日記なんか、しばしば ScalaTest で contain theSameElementsAs / theSameElementsInOrderAs が上手く動いてくれないことがあるんだが、何が原因なのかよくわからん。 Scala のバージョンとかがまずいのかなぁ。 別に Set や List に変換して equal で比べて…

2016年6月5日

日記順列からその順列の辞書順序による番号を計算したり、番号から順列を生成したりするアルゴリズム、『Java によるアルゴリズム事典』に載ってる、階乗進数を使った方法は動くのだが、直接 int 値からもしくは int 値へ変換する方法がどうもうまく動かん。…

2016年5月25日

日記順列の辞書順序による番号(階乗進法)を計算するコード書けた&何故そうなるかもまぁOK。 高校でこんなんやったなぁという順序数えをコードにしたような感じ。 まぁこれはいい。 でも逆に階乗進法による番号(と次数)を与えて順列を生成するコードが、…

2016年5月24日

日記順列から辞書順序での番号を計算したり、逆に番号(と次数)を指定して順列を取得したりするコードがどうも上手く動かん。 直接整数を扱うより階乗進数で番号を扱う方がコードはちょっと簡単になるようだけど、これは単に順列の番号と整数の間の変換を階…

2016年5月23日

日記階乗進法のコーディングが終わって順列に戻ってコード見てたけど、順列の辞書順序に階乗進法使ってもあんまり便利そうではないような・・・『クロムクロ』、ヒロインが「闘う、闘わない」で眠たいこといってるなぁ。 バトルものアニメなんでバッタバッタ…

2016年5月22日

日記階乗進法って「階乗」使ってるだけあって、普通の整数との変換がいかにも再帰を使って書けって感じのアルゴリズムなので、再帰関数書く練習にちょうどいい。 むしろ簡単すぎるのかもしれんが。 階乗進法のクラス作ったがインスタンス化が面倒なのでリテ…

2016年5月21日

日記順列の順序に関連して階乗進法というのをパラパラ見てるんだけど、この計算になれておくと高校数学の辞書順序とか、ちょっと難しい私立中学入試の算数とかに役立つかもしれないね。 10進数を2進数に変換する筆算みたいなことが階乗進法でもできるようで…

2016年5月20日

日記『Java によるアルゴリズム事典』、置換の生成が載ってないのおかしいなぁと思ってたら、順列の生成に載ってた orz それくらい気付よ、自分w ということで順列関連のコードをまた書こう。 なんか、辞書順序とか階乗進数とかも絡んでる模様。 面倒そうだ…

2016年5月15日

日記昨日の日記で CRC のチェックサムの計算に末尾の0がないとか書いてたけど、キチンと考慮されてますた。 なのでチェックサムを付加されたバイトストリームの計算の方でちょっと細工が必要なよう。 まぁ、もともとチェックが上手くいかないのであれこれ悩…

2016年5月13日

日記CRC (巡回冗長検査)を Scala で再帰的に書くコード、動くようにはなってるのだが16ビットと32ビット、ビット順序の正逆、表を使うかどうかなどをトレイトのミックスインでなるべく設定できるようにしようとリファクタリングしてたら無駄に手間かかって…

2016年5月12日

日記ちょっとビット関連のコード書いてて面倒だなぁと思ってたら、java.lang.Integer クラスの静的メソッドにいくつか便利そうなものがあるのを発見。 ちょっとあれこて試し中。 直接関係はないけど Java8 から unsigned Int 関連のメソッドが追加されてるの…

2016年5月8日

日記『Java によるアルゴリズム事典』の CRC (巡回助長検査)で詰まってる。 何を計算しようとしてるのかはまぁ分からんではないんだが、それを実現してるコードがむむむっとなる。 整数のビット演算がどうにも意図をくみ上げるのを邪魔しとるような、結果…

2016年5月6日

日記GW のため、月マガが6日発売。 『龍帥の翼』、始皇帝死んどるやないかーい。 さすがに暗殺したことにはしないか。『Java によるアルゴリズム事典』で「置換の符号」の項目の上が「チェックサム」で、簡単そうなコードだったので書こうと思ったら、関連項…

2016年5月5日

日記置換の符号を計算するコードと全置換を生成するコード書いた: wasan.hatenablog.com wasan.hatenablog.com var 使わず、かつ末尾再帰で書けた。 さて、次のコードはいつになることやら。Javaによるアルゴリズム事典作者: 奥村晴彦,杉浦方紀,津留和生,首…

2016年5月4日

日記『Java によるアルゴリズム事典』をぱらぱらと Scala で書いてみる。 wasan.hatenablog.com なるべく var なし、末尾再帰で。 まぁ、他で必要になったアルゴリズムをちょろちょろ書き換えるだけなのでたまにしか更新しないだろうけど。まだ買って3~4か…

2016年5月2日

日記ちょっと置換を使って遊ぼうと思って Scala で置換のクラスを書いてみてる。 Scala では SeqLike トレイトに置換全てを生成するメソッドが定義されてるので自分で置換を生成するメソッドを書く必要はないんだけど、次数が大きくなると置換の符号を計算す…

2016年4月29日

日記置換を Scala でコーディングしてたら符号の計算がちょっと面倒だ。 まぁちょっと面倒なだけではあるけど、外部から指定したい場合がある(全置換を生成するときなど)。 ケースクラスってコンストラクタに引数として渡すと等値評価とかハッシュの計算に…

2016年4月28日

日記『ソードアート・オンライン』17巻購入。 気持ち、巻を重ねる毎にちょっとずつ厚くなってるような・・・ ページ数的にはそうでもないかも知れないけど、アドミニストレータ倒してから「もう少し続きます」とあってから結構長いなw 今回のサブタイトルは…

2016年4月13日

日記カフェイン摂り過ぎたせいか、ちょっと寒の戻りがあったせいか、久し振りに頭痛が・・・ 最近アルコール断ちしてるんだが、頭痛の時のウイスキーだけはやめないぉ。〈音泉〉で始まる予定だった橋本ちなみさんと立花理香さんの番組がなかなかアップされな…

2016年4月10日

日記JavaFX ではたのライブラリを使わなくても 3D を普通に扱えるもよう。 まだあんまり API をきちんとは見てないけど、Three.js の API と同じような Camera とか Light とかの設定をしていくような使い方なよう(まぁ、3D のライブラリって普通そうなんだ…

2016年4月9日

日記グラフを表示するライブラリはいろいろあるけど、コード内からファイルとして保存するには何のライブラリを使うといいんだろ、と思案中。 JFreeChart では普通に API として提供されてるけど、JFreeChart って最近アクティブでない感じなので使うのにち…

2016年4月8日

日記馬力の単位をふと見てたら米国と欧州の違いの他に ISO やら蒸気やらいろいろあるのね。 英語のページで見てていろいろあるなぁと思ってたけど、さらに日本語のページ見たら日本は日本で別の定義あるのね。 単位換算コード書くのに、コード中でこういうの…