2010-02-01から1ヶ月間の記事一覧

セレクターその6(グループセレクター)

複数のセレクターを,(カンマ)区切りで並べて指定できるのが「グループセレクター」です。それぞれのセレクターに対する命令をまとめて記述できます。サンプルでは "," の両サイドに半角スペースを挿入しているけどつなげるとどうなるんだろう。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.lo</script></head></html>…

セレクターその5(ユニバーサルセレクター)

すべての要素を指定できるのが「ユニバーサルセレクター」です。ユニバーサルセレクターは*(アスタリスク)で記述します。ですって。では早速。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { $("li *").css("color","…</head></html>

セレクターその4(子孫セレクター)

複数のセレクターをスペース区切りで指定することにより、特定の要素の内側にある要素をさらに絞りこんで指定できます。例ではclassセレクター+要素セレクターの組み合わせだけになっていたけど、 ちょっと修正してIDセレクターも含めて試してみた。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">goo</script></head></html>…

セレクターその3(classセレクター)

classセレクターの記述方法。 指定情報を「.class名」にするだけ。 こちらで指定した場合、同一classを適用されている要素は全て反映されるっぽ。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { //classが「secon…</head></html>

セレクターその2(IDセレクター)

次にIDセレクターの記述方法。単純に、指定情報を「#ID名」にしてあげるだけ。 但し、同一IDが存在する場合、先頭のIDが優先される感じ?全部が対象になるわけじゃないのかな。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { //ID…</head></html>

セレクターその1(要素セレクター)

一回、要素セレクター、IDセレクター、クラスセレクターをまとめてエントリ作ったんだが、セレクターの手法がもっと沢山あることがわかったので、それら一つ一つに対してエントリを立てるように変更します。画面の操作は自分が意図した要素の状態を変更した…

ブラウザはファイルの先頭から読み込んでいく。

だいぶ昔にjavascriptを触りながら独学してたけど、お遊び程度だったのでちゃんと理解してなかったことがありそう。 以下もその一つかもしれない。 Webブラウザーは、(X)HTMLをファイルの先頭から一行ずつ読み込んでおり、script要素が読み込まれた段階で、s…

jQueryの学習に良さげなサイトを発見。

このサイト、実は仕事中に見つけたんだけどWindows環境だと「Silverlightをインストールしてください」ってダイアログが必ず出る。うぜー。 で、自宅のlinux環境で見たら出なかった。ラッキー。(てかjQueryのサイトでSilverlightってすっごいミスマッチなん…

HTML+Javascript+ブラウザだけでローカルファイルへの入出力が可能になるとどうなるか。

考えてみた。 ・サーバーとの入出力データのやり取りを疑似的に模倣することが可能。 ・従って、サーバ環境が無くても、クライアント側のGUIの作り込みが可能。 ・そしてそのGUIはほぼそのまま本番に使用可能。(入出力部分をWebサービスへの接続に挿…

SICP 問題 1.28 (Miller-Rabinテスト)

【問題】騙されないFermatテストの変形の一つは、Miller-Rabinテスト(Miller-Rabin test)(Miller 1976: Rabin 1980)という。 これは n が素数であり、a を n より小さい任意の整数とすると、a の (n-1) 乗は n を法として 1 と合同であるという、Fermat…

SICP 問題 1.27 (Carmichael数に騙されるの巻)

【問題】 脚注47のCarmichael数が本当にFermatテストを騙すことを示せ。 それには整数 n をとり、a 【解答】 まずはその脚注47をご紹介。 47 Fermat テストを騙す数は、Carmichael数(Carmichael numbers)といい、非常に稀だということ以外はよく分からない…

SICP 問題 1.26 (計算の呼び出し回数による増加の割合の違い)

【問題】 Louis Reasoner は問題 1.24 がなかなかうまくいかなかった。彼のfast-prime?よりずっと遅いようであった。 Louis は友人の Eva Lu Ator に助けを求めた。 Louis のプログラムを見ていると、square を呼びだす代わりに乗算を陽に使うように変わって…

SICP 問題 1.25 (冪剰余と普通の剰余の違い)

お仕事が忙し過ぎて体がもたん。。やる気が。。 【問題】 Alyssa P. Hacker は expmod を書くのに多くの余分なことをやったと不満で、結局ベキ乗計算法は知っているから、 (define (expmod base exp m) (remainder (fast-expt base exp) m)) と単純に書ける…

SICP 問題 1.24 (fast-prime?関数を使って計測時間を比較)

【問題】 問題 1.22 のtimed-prime-test手続きをfast-prime?(Fermat法参照)を使うように変え、その問題で見つけた12個の素数をテストせよ。 FermatテストはΘ(log n)の増加なので、1,000,000近くの素数をテストする時間を1,000近くの素数をテストする時間と…

SICP 問題 1.23 (ムダを省いたアルゴリズムで再度時間の増加の程度を求める)

【問題】 本節の初めのsmallest-divisor は多くの不要な計算をする: 数が2で割り切れるか調べた後は、より大きい偶数で割り切れるか調べるのは無意味である。 test-divisor が使う値は 2, 3, 4, 5, 6, ... ではなく、2, 3, 5, 7, 9, ... であるべきだ。 こ…

SICP 問題 1.22 (時間の増加の程度を求める)

なんか面倒くさいなぁ。。【問題】 殆どのLispの実装には基本的手続きruntimeがあり、システムが走った時間を(例えばマイクロ秒で)示す整数を返す。 次のtimed-prime-test手続きは整数nで呼び出されるとnを印字し、nが素数かどうかを調べ、nが素数なら手続…

ローカルファイルへの書き込み(その2)

できたー!!! というか、発見したー!! かめだあきひろさん、ありがとうございました! いやね、他にもたくさんサンプルを挙げてくれているサイトやブログさんはあるのですよ。本家とかね。 でも、自分の環境でやるとうまく動いてくれない。。 とりあえず…

ローカルファイルへの書き込み

書き込みの方、いまいちクリティカルな記事がない・・・ あってもなんか複雑そうで、読み込みの時ほど簡単にはいかなさそうだ。 でもこの部分、実現できないと勉強する気にならんので、ちょっと気合いれて調べてみようと思う。 それにしてもFireBugすげー!…

ローカルファイルの読み込み

まずはローカルファイルの読み込みができるのかどうか。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.2");</script> <script type="text/javascript"> $.get("test.txt", function(data){ alert(data); }); </script> </head> <body/> </body/></html>

Schemeに並行して、jQueryも勉強を始めます。

自分、Schemeが好き(おw)なのはもう間違いないんだが、 それだけだと「ヲシゴト」をしている社会人としてはネタ的にかなり弱い。 だってSchemeはヲシゴトで使えないんですもの。 (試しにとある転職サイトで「IT業界」だけ選び、キーワードにScheme」って…

SchemeShellが普及すればよかったのに。

Windowsのバッチ処理のfor文なるものを初めて見て思ったこと。 こいつはファイルの操作が簡単にできるという意味で、UNIXにけるシェルスクリプトに相当する位置づけだと思う。 (機能的には全く追随できてないと思うけど) どちらもファイル操作を簡単に済ま…

SICP 問題 1.21 (最少序数を求める)

ただ実行するだけ。 【問題】 smallest-divisor 手続きを使い、次の数の最少序数を見つけよ: 199, 1999, 19999 【解答】 まずは、セクションで定義してた関数群を再掲。これを踏まえて。 ;最少の序数を求める (define (smallest-divisor n) (find-divisor n…

SICP § 1.2.6 素数性のテスト(その2)

あんまり数学にかかずらわって本来の目的が遂行されないのもアレなので、 例のmodulo演算の展開は「そういうもの」として進むことにしました。 つーわけでコレです。 ;ある数のべき乗を法とする剰余を求める関数 (define (expmod base exp m) (cond ((= exp …

SICP § 1.2.6 素数性のテスト

いや〜、わからねぇwww まだこのセクション理解しきれてないので、以下、途中経過だけ書いておきます。 ■除数の探索 覚えていますか素因数分解。「素数^n」の表記を使って自然数を分解していくアレです。 割ることができる素数が見つからない場合、その数は…

SICP 問題 1.20 (最大公約数算出で使用されているremainderの正規評価順序と作用評価順序について)

【問題】 手続きが生成するプロセスはもちろん解釈系が使う規則に依存する。 例えば、上で述べた反復的 gcd 手続きを考え、1.1.5節で論じた正規順序評価を使って解釈したとする。 (if の正規順序評価規則は問題1.5に書いてある。) (正規順序の)置き換え…

SICP § 1.2.5 最大公約数 (Euclidのアルゴリズム)

Euclidのアルゴリズム最大公約数について。2つの整数 a, b の最大公約数を求める場合、普通は両方の数を素因数分解して、 共通因子を取り出して乗算するけど、もっと効率のいい、すげーアルゴリズムがあるみたい。このアルゴリズムは、 「a を b で割った剰…

SICP 問題 1.19 (逐次平方変換を利用したFibonacci数を求める末尾再帰処理)

これ結構楽しかった。 【問題】 Fibonacci数を対数的ステップ数で計算するうまいアルゴリズムがある。 1.2.2節の fib-iter プロセスで使った状態変数 a, b の変換、 a ← a + b b ← aに注意しよう。この変換を T と呼ぶ。 1 と 0 から始め、T を繰り返して n …

SICP 問題 1.18 (1.17の末尾再帰化・・・)

あ。。 【問題】 問題 1.16, 1.17 の結果を使い、加算、二倍、二分による、対数的ステップ数の、 2つの整数の乗算の反復的プロセスを生成する手続きを工夫せよ。 【解答】 これ、1.17の段階でやっちゃってるので省略。

SICP 問題 1.17 (逐次加算?を用いた乗算)

割とすんなりできたなぁ。 【問題】 本節のべき乗アルゴリズムは乗算の繰り返しによるべき乗の実行に基づいていた。 同様に整数の乗算を加算の繰り返しで実行できる。 次の乗算手続きは expt 手続きに似たものである。 (この言語には加算はあるが乗算はない…

SICP 問題 1.16 (逐次平方を使った末尾再帰のベキ乗計算)

【問題】 fast-exptのように、逐次平方をを使い、対数的ステップ数の反復的ベキ乗プロセスを生成する手続きを設計せよ。ヒント: (b^(n/2))^2 = (b^2)^(n/2)に注意し、指数nと底bの他にもう一つの状態変数aを用意する。 状態の移り変わりで積ab^nが不変であ…