東大でも医学部でも合格生でもない僕の考えた積の暗算方法

あのとぅぎゃってるのみてから忘れてて今更だけど

やりかた

例えば「123*567」を計算するとして
まずは各数字を縦横にならべた表を思い浮かべる

右下から斜めラインが変わるたびに一の位、十の位とあがっていくので

「3*7=21」たす「3*6=18(十)」いこーる「201」たす「7*2=14(十)」いこーる「341」たす「3*5=15」いこーる「1841」...
みたいに頭の中の計算はこんな感じで足していく

ポイント

  • ステップごとに最新の数字(MAX:解の桁数)と交差する積(MAX:2桁)しか使わない
  • 計算に用いない桁(黒字)は繰り返し意識するので忘れにくい

って感じであれよりやりやすい気がする
というかあれは筆算をそのまま暗算するのと変わらないような・・・

その他

とりあえず手書きで確かめるには下画像のように井の字で書いて斜線引くのがわかりやすい
この斜めの青い線の交点を足していく感じで

あ、この青い線を順番に描いていくとこがまるで波(海岸線)のようなので
「コースト暗算」っていう名前はどうでしょう(


6時間でできる!2ケタ×2ケタの暗算―岩波メソッドゴースト暗算

6時間でできる!2ケタ×2ケタの暗算―岩波メソッドゴースト暗算

javascriptでgotoを実装する方法

http://d.hatena.ne.jp/mindcat/20091004/1254653934

ここみてたら思いついたので書く
というか上のURLに

単純にgotoに相当することはできないの?エラー処理などでgotoが便利なときがあるのですが。

としてやりかた載ってたけど間違ってる気がしたので俺の出番

まずリンク先のgoto

Exit: {
  aaa;
  if (bbb) break Exit;
  ccc;
  if (ddd) break Exit;
  return OK;
}
...
return FAIL;

break Exitでブロック文から抜けることで、return FAILが実行されます。何事もなければブロックの最後の return OKが実行されます。ラベルつきブロック文は入れ子にすることができます。

とあるが、これだと

AAA:
a++;
if (a < 10) goto AAA; 

みたいなことができないので使えない。そこで今回のエントリが現れる。

AAA: while(1) {
    a++;
    if (a < 10) continue AAA; //これがgoto AAAに値する

    //gotoを使用するブロックを終了
    break AAA;
}

これでいける

ちなみに最後のbreakを入れないと永久ループで横に開いてるエロサイトのタブが引っ張られて強制終了するから気をつけないといけない

複数のラベルを設定したいときにも

AAA: while(1){
    //do something

    BBB: while(1){
        //do something
        if (foo) continue AAA; //goto AAA

        //do something

        if (bar) continue BBB; //goto BBB

        //do something

        //gotoを使用するブロックを終了
        break AAA;
    }
}

のようにネストすればできる

ようは戻りたい地点のループをこんちぬでもう一回まわしてやればいい

ソースははてだに直接かいてテストしてないから間違ってるかもしれないけどコンセプトはあってるはず
個人的にはgotoっぽさをだすためにネストしてもインデントはしたくない

AAA: while(1){

//do something

BBB: while(1){

//do something

if (foo) continue AAA; //goto AAA

//do something

if (bar) continue BBB; //goto BBB

//do something

//end goto block
break AAA;}}

こんな感じで書いたらラベル後ろのwhileと最後の1行以外は普通のgotoみたいに使える気がする

goto使う機会がないけど

PHP「"0x0A" == "10"はTRUEですがよろしいですか」が自分の環境で再現できないのがくやしかったから改悪してみた

PHP5.1.6「"0x0A" == "10"はTRUEですがよろしいですか」
ぼく「えっ」

PHP5.1.6「"0x0A" == "10"はTRUEになりますが」

ぼく「いえFALSEです」

PHP5.1.6「えっ」

ぼく「えっ」

PHP5.1.6「まだ比較したことがないということでしょうか」

ぼく「えっ」

PHP5.1.6「えっ」

ぼく「変化するってことですか」

PHP5.1.6「なにがですか」

ぼく「型が」

PHP5.1.6「ああ文字列でも整数っぽい文字列なら自動で型変換されますよ」

ぼく「そうなんだすごい」

PHP5.1.6「では比較いたしましょうかTRUEですよ」

ぼく「でも"0x0A"は明示的にキャストしたら0になりますよね」

PHP5.1.6「えっ」

ぼく「えっ」

PHP5.1.6「ああ16進数のことなら比較の場合のみ10進数に自動で変換してから比較するんですよ」

ぼく「なにそれこわい」

PHP5.1.6「ちなみに"10" == "+000010.0000000000000001"もTRUEになりますが

"0x0A" == "+000010.0000000000000001"の場合はFALSEになります」

ぼく「なにそれもこわい」

PHP5.1.6「えっ」

ぼく「えっ」


PHP「"0x0A" == "10"はTRUEですがよろしいですか」 - Unknown::Programming よりうちの環境に合わせて修正

                                                                                                                                                                      • -

元記事の環境(Ver. 5.2.8)では「"0x0A" == "+000010.0000000000000001"」がtrueになるらしいけどうちの環境だとこうなった

$a = "10";
$b = "0x0A";
$c = "+000010.0000000000000001";
echo ($a == $b)?'true':'false';//true
echo ($a == $c)?'true':'false';//true
echo ($b == $c)?'true':'false';//false

B=A=C<>Bって何を考えてるのw

テーブルに色も埋め込めるエクセルシートをHTMLテーブルに変換しちゃ

あけましておめでとうございました。

三日どころか2日分の日記を書いてとまってることが終わってます。
アルファにしてオメガなブロガーアンポンタン・ポカンです。(最初から終わってるね!)

前回の日記でエクセルシートをHTMLテーブルに変換しちゃう君を紹介して早くも一月程度が過ぎ去ってしまいました。

そのあいだいくつかのブログでご紹介いただいたようで大変ありがたく思っております。

さて、私アンポンタン・ポカンがその一月の間なにをしていたのかというと普通の仕事してたり忘年したり年越したりしてたわけですが、その間になんとエクセルシートをHTMLテーブルに変換しちゃう君でテーブルに色をつけれるように改造していたのであります。

実は前回公開後に件のTableizerを紹介していた某サイトに自分からリークしていたんですが、色もつけれるほうが忙しい身からしたら便利だよねとアドバイスをいただき追加することにしたのです。

色の選択にはYUIのcolorpickerをつかっているのですがどうにも使い方がいまいちわからず苦労してしまいました。
こんなに時間がかかるなら自分でカラーピッカつくればよかったと思いました(すばらしい車輪の再発明とかが自分のスキルアップにつながると幻想している)
が、やっつけでなんとか完成したので公開しました。

再度リークすることになると思いますけどそのときはどうぞよろしくお願いします。

エクセルシートをHTMLテーブルに変換しちゃう君

エクセルシートをHTMLテーブルに変換しちゃう君 (β)とTableizerの違い

セル内での改行に対応

マイクロソフトエクセルだけかもしれないけど)CSV(TSV)では、それぞれのセパレータや改行などをセル内に含む際ダブルクォーテーション(")でくくることで解決しているんですが、それを読み取ることでセル内での改行もHTMLに反映

CSVにも対応

タブ区切りテキストだけじゃなくCSV(カンマ区切り)にも対応しているのでこのツールの画面で簡単にHTMLテーブルを作ることも可能(この使い方は稀だと思う)

強固なセキュリティ性

すべてjavascriptで解決しているためサーバとデータのやりとりを行わずにHTMLテーブルを出力できます。

セルの結合が可能

エクセルで結合したセルをコピーして張り付けると、結合前の状態のタブ区切りテキストが貼り付けられますが、しちゃう君なら空白のセルを上、または左のセルに結合することができます。
コンピュータでは判断できない上セル、左セルそれぞれの結合が混合したシートでも、簡単なマーキングで自在に対応できます。

正しいマークアップが可能

theadやthなどをよく使う形であれば分別して生成します。
ソースを見られて恥ずかしい思いをすることが減ります。(ちなみにしちゃう君はみてみると恥ずかしいソースになっています)

独自のデザインを簡単に組み込めます

thの階層ごと、または数行ごとにクラス名を付与することが可能なので、2行おきに色ちがいのテーブルなども簡単に構築できます。

日本語対応

文字エンコードの設定なしにそのまま日本語を使うことが可能です。忙しいときに使うツールでしょうし面倒な作業は一切不要!

ぱっと見てすぐにわかるネーミング

お気に入りにいれたのはいいけど名前を忘れて探せない!そんな悩みとは縁遠い「エクセルシートをHTMLテーブルに変換しちゃう君(β)」

エクセルシートをHTMLテーブルに変換しちゃう君 (β)

実は僕の誕生日は12月14日なんです。
先週歳をさらにひとつ重ねて24歳になりました。

現在話題の派遣でウェブ系のプログラマーをしているわけなんですが、年齢もあれなんでそろそろ就職も考えないといけないなぁと思いながらネタになるものをさがしていたら見つけてしまったのがコレ

エクセルデータからHTML Tableタグの表を作成してくれる「Tableizer」 - WEBマーケティング ブログ

僕も同じようなツールを作って会社で個人的に使っているんですがそれほど需要があるものだとは思わなかったんで公開しようとかも考えなかったんです。
今みてるだけではてぶが227個もついてるんですよね、改行も対応してないしセルの結合もできないみたいなので何人が使うのかわかりませんが不便なんじゃないかなぁと思うんですよね。

というわけで二番煎じだろうが公開しときます。あとこの日記はじめたばっかりで誰もみてないと思うんで適当に宣伝をしてきます。なのでおそらくここを見ることになる人はしばらくそこから来る人が大半だとおもいます。

ついでになにか僕に言いたいことがあればここにコメントを残していただくかtwitterでリプライしてもらえれば反応すると思います。

で、肝腎のブツはここにあります
エクセルシートをHTMLテーブルに変換しちゃう君 (β)

アドレスだけはるのも微妙なんでTableizerとの違い(主に優位点)を紹介。