8人の女王はバックトラッキングのための例題 - バックトラキング
2007/06/29
8人の女王は、ひとつますに女王をたんにおいていけばいいという問題なのではなく、バックトラッキング(back tracking:後戻り法)を行うためのいい問題ということなのですね。
8人の女王は、ひとつますに女王をたんにおいていけばいいという問題なのではなく、バックトラッキング(back tracking:後戻り法)を行うためのいい問題ということなのですね。
人は自分の速度でしか、変化することができず、いろいろなことを共有したければ、相手を理解することも大切だし、理解してもらう努力をするのも大切。
でも、もう頭がくらくらするコードはみたくない、というのが本音だったりもする。もうアドホックなことはやめにしたいな。
割り切れないこともあるわけですよ、よい習慣は、あっというまに悪い習慣に駆逐されてしまう。人や自分に言い訳しながら仕事するのはしんどいですよ。はい。
前提が違うことをコードで表現するさいに、もうあちらこちらにフラグや、条件判定がちりばめられるわけですよ。それで、何度も何度も実行して、デバッガ使って動きを観察して動くようにするわけです。動けば勝ち。で、動いたら喜ぶ。動かなければ、動くようにするわけですよ。ずーと、ずーと、そういうことばかりだと、どうも....
プログラムの教科書によくでている8人の女王にチャレンジ。
単純に縦の線、横の線、斜めの線をチェックして、
みると案の上だめ。女王は8人いないといけないのです。
で、まちがいコード。
いや、数学はだめだめなので。
しかし、大学一年生レベルらしいんですよね。
正解はまた別記事で。
ちょっと参考書みて、考えたけど、よくわからないです。
結果
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
count:5
文字列にある語が何回出現しているか数える
多分。。。
15組だと思う。
abcdeという指定がないなら、
重なっている組み合わせは除外しないといけないような。
A
cnt:1
==================
A
AB
B
cnt:3
==================
A
AB
ABC
B
BC
C
cnt:6
==================
A
AB
ABC
ABCD
B
BC
BCD
C
CD
D
cnt:10
==================
A
AB
ABC
ABCD
ABCDE
B
BC
BCD
BCDE
C
CD
CDE
D
DE
E
cnt:15
==================
Curly braces indicate an array of values is being supplied
の訳は?
アノテーションに触る機会がないのでいじってみます。
Java言語機能-TECHSCORE-
Functioal Programming IAT
結果は、「あなたの関数型指数は 0.486530786739228 です。正が関数型、負が手続き型です。」でした。ちょっとだけ関数型よりということでしょうか。
参考:
IATテスト
ログコードがあちらこちらに点在しはじめたら、コードの健康状態がよくない方向に進んでいることはまちがいないですね。
プログラマが開発用のログを放置するのは、怠惰のあわられ、もしくは疲弊した結果、自信のなさからだと思います。そういった結果で注入されたログコードは大概、開発した本人にしかわからないものになります。コードの可読性を落とします。
コードレビューのようなチェック機構、もしくは開発はペアプログラミングであればよいのですが。
プログラマが開発時に自信がなくいれるログコードは、《掛け捨ての保険みたいなもの》ですね。
日頃操作しているものでも、少し触らなくなると忘れてしまいます。
プログラミング言語でも、自分がホームだといえる言語、エディタ、データベースはそれぞれひとつかふたつくらいなのではないでしょうか。
お仕事でコンピュータにかかわっていると、何でもやららないといけないときがあります。
慣れないエディタやデータベースに接続しないといけない時もあります。
そういう時は、チートシートを常備しているとよいでしょう。
参考:
Our Favorite Cheat Sheets - a definition from Whatis.com
Linuxのテキストエディタviとvimのグラフィカルなチートシート - GIGAZINE
Snail Blog (beta) » 開発者に重宝なチートシート一覧
Ajax,Apache,CSS,CVS,HTML,JS,Perl,PHP等のチートシートまとめ:phpspot開発日誌
SubVersionやRMDB、他各種プログラミング用チートシート集:phpspot開発日誌
秋元@サイボウズラボ・プログラマー・ブログ: viマグカップ
vi reference mug > vi stuff > geekcheat.com - cheat sheets for geeks! | CafePress
【レビュー】Mac & Win両対応のSafari 3 パブリックβを試す (3) WindowsでCoreGraphicsが! | パソコン | マイコミジャーナル
【コラム】OS X ハッキング! (230) Windows版Safariに秘められた野望 | パソコン |
上記の記事で気になったこと。
使用されているフレームワークだが、標準インストールでC:\Program Files\Safariへコピーされるコンポーネントを確認してみると、WebKit.dll(v3.522.11.3)のほか、 CoreFoundation.dllやCoreGraphics.dllといったMac OS Xから移植したと思われるランタイムを発見できた。SQLite3.dllなど、オープンソースの技術も利用されている。【レビュー】Mac & Win両対応のSafari 3 パブリックβを試す (3) WindowsでCoreGraphicsが! | パソコン | マイコミジャーナル
OS Xの主要なAPIレイヤーの1つであるCoreGraphicsが移植された意味だが、今後もSafari限定とは考えにくい。すでにWindws版が存在するiTunesとQuickTime Playerは、いずれこの高機能なライブラリの力を使うことだろう。ひょっとすると、Windowsで動くApple製ソフトが増える契機になるかもしれない。
【コラム】OS X ハッキング! (230) Windows版Safariに秘められた野望 | パソコン | マイコミジャーナル
職場の同僚からいただいたREGファイルより。
任意の場所でコマンドプロンプトを開く
エクスプローラでフォルダを選択して実行で、そのフォルダにCDしたコマンドプロンプトが開きます。
bloggerで記事を投稿する際に、javascriptを埋め込もうとすると改行コードがある場合に、それがHTMLコードで置き換わって、スクリプトが動作しなくなるので、改行コードを削除するjavascriptです。
UPCコード,EANコード,JANコードにおける国別コード判定です。
頭の、2、3桁をみればいいようです。
簡単な国別コード識別プログラムです。
javascriptのサンプルです。
データ構造はjsonにしてみてます。
スペル修正プログラムはどう書くか
Tumblr
Main Page - Bloggerhacks
【コラム】Java API、使ってますか? (15) アノテーションをさらに広い範囲で利用可能にするJSR 308 | エンタープライズ | マイコミジャーナル
Amazon Web Services Developer Connection : XML UPC SEARCH NOT WORKING ...
Joshua Marinacci's Blog: Using Java2D to to build a Stacked Image Editor
EfficientJavaScript - Dev.Opera - 効率的な JavaScript
Amazon Web サービス ブログ: ECS 3.0 から 4.0 への移行
libdecodeqr - Trac
Karetta|Gaucheプログラミング|「Lisp脳」の謎に迫る - Schemeプログラマの発想
lethevert is a programmer - Re: クロージャ
Photoshopチュートリアル ミニチュア模型を撮影したような写真に加工する - DesignWalker
boolean値が3つあって、その状態の組み合わせてをelseなしで記述するための準備。
c:8
if(a && b && c){
// T T T
return;
}
if(not(a) && b && c){
// F T T
return;
}
if(a && not(b) && c){
// T F T
return;
}
if(not(a) && not(b) && c){
// F F T
return;
}
if(a && b && not(c)){
// T T F
return;
}
if(not(a) && b && not(c)){
// F T F
return;
}
if(a && not(b) && not(c)){
// T F F
return;
}
if(not(a) && not(b) && not(c)){
// F F F
return;
}
Vimeo / Magnetic Structure
Magnetic Structure from flight404 on Vimeo
processingでここまでできるんですね!!
かっこいいです。
作者のブログ
all manner of distractions
ECMAScript Edition 4 Reference Implementation | Lambda the Ultimate
ECMAScript Edition 4 レファレンス実装はSML(Standard ML)で行われたそうです。
参考:
ML (プログラミング言語) - Wikipedia
Standard ML of New Jersey
sanonosa システム管理コラム集: 生年月日から年齢を計算する簡単�
最近の高速化
開発者はVarnishを高速化プログラミングの参照実装として活用してほしい。Varnishで採用されている実装はOSの性能をフルに引き出すという点できわめて興味深い実装になっている(FreeBSD 6/Linux 2.6対象)【レポート】高速化プログラミングの参照実装としても活用さ�
一般にFTPはTCPを使っているので,受信確認パケットをやりとりするための時間がかかる。Files2UのJavaアプレットでは受信確認をしないUDPを使い,ファイルを圧縮している。【Interop Las Vegas】カナダの企業がJavaで実装した高速ファイル転送ソフトを出展:ITpro
N2 ToolBox 頼むからxxx2ていうメソッド名つけるのはやめてくれ
「xxx2ていうメソッド名つけるのはやめてくれ」というのはすごくまともな感覚だと思う。
とはいっても、なんとか2というネーミングをしてしまう気持ちもわからないではない。
理由こんな感じだろう。
(a)もう頭がいっぱい、いっぱい。
(b)別の名前つけて、ぶーぶーいわれるのがいやだから。
(c)自信がなくて、おきかえられない。えい、xxx2にしちゃえ。
命名するというのは、いずれにしろ覚悟がいる行為。
ぐっ覚悟決めて名前つけしましょう。
と、自戒をこめて。
現在、接続しているインスタンス名を知る方法
c:16
T T T T
F T T T
T F T T
F F T T
T T F T
F T F T
T F F T
F F F T
T T T F
F T T F
T F T F
F F T F
T T F F
F T F F
T F F F
F F F F
blob型格納されているデータをバイトの配列ですべて取得する場合
BlobクラスにはgetBytesメソッドがありますが、最初の引数は0ではなく、1ではじまることに注意。
pos - BLOB 値内の最初に抽出されるバイトの位置 (序数)。最初のバイトの位置は 1
javadoc
最近読んだ記事のなかで、おどろいたのは、プログラマーの未来の時給の下がりが一番大きいというものだった。
うーん。
でも、めげずにがんばろう...Orz
参考:
駆け出しプログラマーのグループ - hamastaの日記 -Pythonで学ぶプログラ�
| プログラマーの復権 情報ビジネスの展望 Edward Yourdon シイエム・シイ 2001-02-01 by G-Tools |
白状すると僕は、コピープログラマであると思う。
現状、この職業の7割がたコピープログラマでなりたっている可能性大である。
検索エンジン、Webの恩恵で、たいがいコピーペーストでプログラムを書いてしまえる。
コピープログラマからはじまって、
ブログを通して、オリジネーターになれたらいいな、と夢想するが、その道は長そう。
プログラマになる方法
上記のリンクは、まさに現代においてのプログラマの姿を端的に現していると思う。
コピーペーストすればいいと、いいきってしまうプログラマがいたら注意したほうがいい、ある意味それは真実かもしれないが、新しいものが何もでてこなくてつまらないから。