« 2008年1月 | トップページ | 2008年3月 »

2008年2月

2008/02/29

今日のVistaニュース

Vistaニュース1:パッケージ版Vista値下げ[ITmedia]

値下げの対象となるエディションや額は地域によって異なるようで、対象エディションは先進国市場ではHome PremiumとUltimate、値下げ額は20~40%程度だそうです。

この値下げはVista SP1リリースと同時に全世界で適用されます。

Vistaニュース2:Vista Capableの真相[CNET][ITmedia]

Microsoftは「Windows Vista Capable」(このPCはVistaの要件を満たしていますよ。を示すシール)をめぐり提訴されていますが、このVista Capableについての興味深い事実がMicrosoftの社内メールから明らかになりました。

詳細はリンク先の記事を読んでもらうとして、最も注目したのが「Intel915チップセットをVista Capableに含めたのはIntelからの圧力があった」というもの。

| | コメント (0) | トラックバック (0)

時間割作成プログラムをGUI化する。

かな~り前に作った「時間割作成プログラム」をJava SwingでGUIプログラム化したいと思います。

  • 起動すると空の時間割りが表示される
  • マウスで目的の時間をクリックして授業名を入力
  • 作成した時間割は.iniファイルとして保存し、次に起動したとき読み込む

こんな感じで。

とりあえず、JTable使って作ってみたのがこれです。(まだ見かけだけで何の機能の無い)

Schedule_maker

JTableはデフォルトで編集可能になっているので、2つ目はクリアかな。(それっぽくするのに少し手を加えなくてはならないですが)

| | コメント (0) | トラックバック (0)

EMOBILEのサービスエリアが拡大した

2月、3月でEMOBILEのサービスエリアが拡大します。2月は主に既存のサービスエリアのカバー範囲の拡大、3月は鳥取県、山口県、佐賀県、宮崎県がサービスエリアに加わるようです。(対象地区は確定次第発表される)

Link:EMOBILE NEWS(2月に拡大されたエリアの一覧も記載されている)

EMOBILEのサービスエリアを確認すると、確かに拡大していました。(場所によっては分かりにくいところもありますが)

先日契約したときは、私が行動する地域のなかでエリア外のところもあったのですが、この拡大によってほとんどカバーされたので\(^0^)/です。

Emlogo

| | コメント (0) | トラックバック (0)

2008/02/28

ThinkPad X300への疑問

X300製品発表会の余韻もさめて、ちょっとした疑問を感じたので書いておこうと思います。

何故、X300はPenrynを待たなかったのか

X300に搭載されているCPUはCore2 Duo SL7100です。これはMeromコアのもので、Mac Book AirやLOOX R70Yに搭載されているものと同様のCPUであり、Intelのロードマップにもない”特別仕様”のCPUです。

ところで、X300に使われている技術の一つ「SFF(Small Form Factor)」はそもそもPenryコアのために開発された技術で、X300に用いられているSFFはMeromコア用に調整を施したものらしいです。

ThinkPad X300は先に挙げた2機種を含めた3機種の中で最後発でした。ならば「MeromコアのSL7100ではなくPenrynコアのCPUを待つこともできたのではないか」と思ってしまうのです。

将来的にはPenrynコアのCore2 Duoを搭載するのでしょうが、できることなら時期が多少遅れてでも正式発表時に搭載していて欲しかったと思ってしまいます。

私も含め、”X300にはカタログスペックだけではわからない価値がある”(この言葉自体に嘘はない)と書いてある記事がありますが、ユーザーは「値段が高いなら、なるべくハイスペックのものが欲しい」って思うのが正直なところだし。

| | コメント (0) | トラックバック (0)

「Rubyスクリプティングテクニック」を買った

オライリーの「Rubyスクリプティングテクニック」を買ってみました。(これ結構売れてるみたいですね)

この本はスクリプトによって煩雑な作業を自動化するための能力を養うための指南書になっています。プログラミングをしたことがない人も読者対象になっているので説明はとても丁寧です。(でも、特にRubyの文法についての解説があるわけでもないので、Rubyを知らない人は入門書を横に置いておいた方がいいかも)

WindowsでRubyを始める人には「One-Click Ruby installer」で環境を整えるのが簡単です。(現時点でのバージョンは1.8.6-26)

Link:RUBY FORGE

Rubylogor_3

| | コメント (1) | トラックバック (0)

Thunderbirdバージョンアップ

メールソフト「Thunderbird」の最新版、バージョン2.0.0.12がリリースされました。

Thunder20012_2

今回のバージョンアップでは2.0.0.9で発見されたセキュリティホールが修正されています。(4段階の重要度で最高の「Critical」に分類されている脆弱性も存在するので2.0.0.9から早めにアップデートしたほうがいいですね)

2.0.0.9からいきなり2.0.0.12になったのはFirefoxの最新版に合わせるためだとか。・・・ところで、

Q.Thunderbird使ってます?

ThunderbirdってFirefoxほど普及していない気がします。(メールソフトのほうがブラウザよりも選択肢が多いので仕方ないですけどね)

そこで、Thunderbirdを勧めたいのが、WindowsXPでOutlook Expressを使っている人。(Windows VistaはWindowsメールが結構便利なので、特に勧めることはしない。もちろん、私はVistaでもThunderbirdと使っている)

現在でもOutlook Expressを使っている人は多いと思いますが、Outlook Expressには問題が結構ある[Wikipedia : Outlook Express]ので、試しにThunderbirdに乗り換えてみてはどうでしょう?ThuderbirdにはOutlook Expressのアドレス帳、メール、アカウント設定をインポートする機能があるので、簡単に移行することができます。

Download:Mozilla Japan - Thunderbird2

Link:Thunderbird拡張機能

Link:Thunderbirdサポート

Reference:Thunderbird - Wikipedia

| | コメント (0) | トラックバック (2)

2008/02/27

ThinkPad X300製品発表会に行ってきた![閉会篇]

楽しかった発表会にも終わりの時間が来ました。まずはlenovoさんが用意してたお土産を紹介したいと思います。

X300note

ThinkPadオリンピック記念塗装モデルを模したノートです。(非売品)こちらはお土産ではありませんが、X300の資料などが入ったlenovoファイルです。

X300file

---ThinkPad X300まとめ---

Tシリーズ並みの大柄な筐体にも関わらず、従来のXシリーズと変わらない重量と新Roll CageによるTシリーズをも超える剛性。緻密に計算された省電力設計による低消費電力(バッテリーの組み合わせで最大8時間強)と低発熱(従来のXシリーズから大幅改善)。また、コーティングによるThinkPadキーボードの使い心地のさらなる向上と、ThinkPad X300はBest Engineered ThinkPadの名に恥じない素晴らしいThinkPadでした。

カタログスペックではX300に批判的な人も、実機に触れれば買いたくなるような魅力を持っています。

しかし、35万円を超える値段になってしまったことで買い手を選ぶThinkPadになってしまったことは否めません。---SSD、液晶用LEDバックライトなどが大きな要因だと考えられる---また、構成の選択に柔軟さが欠けたことでユーザーの幅広い要求に対応することは難しいように思えます。さらに、薄くはありますが、面積が拡大したことによってユーザーからモバイル性が低下したと判断される可能性もあるでしょう。

ですが、これらのネガティブな面があってもX300の魅力は確かなもので、CPUに関しては次第にインテルからTDPを抑えつつも高クロック化を実現したCore2Duo SLシリーズが発表されることで選択の幅が広がるだろうし、SSDに関してもlenovo製品のみならず他社製品が続々SSDを採用すれば低価格化、大容量化が進むであろうと思います。

私は学生でX300に魅了されても即座に購入することは不可能なのが残念ですorz

林檎の会社みたいに「Start X300体験モニター」とかやってくんないかな・・・

PREV:オレのターン篇

    発表篇

    始動篇

Thinkpad1_3

| | コメント (0) | トラックバック (0)

ThinkPad X300製品発表会に行ってきた![オレのターン篇]

オレのターン篇では製品発表の後の質疑応答とX300実機とのふれあいタイムについて紹介したいと思います。

ブロガーからの質問の内容は一晩寝て忘れてしまったのですが、lenovo側のスタンスとして今後のことは話せないというものでした。(まぁ仕方ないですね)

覚えているものをいくつか挙げてみたいと思います。

Q.X300が高額なのはSSDを搭載していることが1つの要因だと思うが、今後1.8インチシリアルATAのHDDを搭載した安価なモデルが登場する予定はあるのか?

A.現時点では何とも言えないが、検討する可能性はある。(私がプレゼン前に聞いた時は現時点でHDDモデルの予定はないと言っていた)

Q.搭載CPUはどのモデルでもSL7100(1.2GHz)でパワー不足との意見も見かけるが、今後SL7100以外のCPUを搭載したモデルが出る予定はあるのか?(これ、私)

A.将来的には分からないが、現時点では予定はない。(インテルも絡むので発言が慎重)

Q.ThinkPadのタブレットモデルが好きで愛用している。今後X300のタブレットモデルが発表される可能性はあるのか?

A.今のところタブレット化の予定はないが、lenovoとしてはタブレットモデルには(X300に限らず)意欲的である。(うろ覚え、誤りの可能性あり)

Q.ThinkPad X300はMac Book Airに勝ったと思うか?

A.私は他社のPCを評価する立場にないが、X300には3つのUSBポートやギガビットLAN端子が搭載されている。さらにバッテリを取り外すこともできる。

Q.X300に水かけてもいい?(それぞれの席にはVolvicのペットボトルが置かれていた)

A.そのような準備はしていないので・・・(かなり慌てていた)

覚えてるのはこれくらいですね。ThinkPadに熱意とユーモア?のあるブロガー達の質問にも福島氏をはじめlenovoのスタッフさん達の対応は丁寧なものでした。

次はX300とのふれあいタイムに移ります。

まずはX300の部品の写真を。

X300p1_2

X300p2

X300key2

写真のDVDドライブはPanasonic製、SSDはSamsung製、3セルバッテリ(2枚めの写真手前)はSony製でした。DVDドライブはねじ止めされるので、拡張バッテリとは事実上排他利用です。(これは1スピンドルモデルとして発売されるということ?)

キーボード上部の電源スイッチの横はLEDインジケータになっており、ミュートなどの状態が表示されます。(写真撮り忘れたorz)

あと、Windowsエクスペリエンスインデックスを出してみました。

X300index

モバイルっぽい結果になりましたが、注目すべきはプライマリハードディスクの値・・・「5.9」です。SSDすごい!

X300pad

X300では一度廃止された赤のラインが復活しています。復活の要望が多かったのだとか。(私は無塗装のほうが好み)

また、X300にはタッチパッドがついています。私を含め、周りのブロガーさんたちは「いらな~い」だったのですが、企業からの条件にタッチパッド搭載が必須になることもあるらしいので必要なんだそうです。(いろいろ大変ですねぇ)

楽しいふれあいタイムもあっという間に過ぎ去り、いよいよ発表会も終了です。

NEXT:閉会篇

PREV:発表篇

    始動篇

Thinkpad1_2

| | コメント (0) | トラックバック (0)

ThinkPad X300製品発表会に行ってきた![発表篇]

では発表会を内容をお伝えしたいと思います。

発表会は下のようなスライドを用いたプレゼンテーションでプレゼンを務めたのは、ノートブック開発研究所 開発担当 チーフエンジニアを務めておられる福島氏でした。

Slide1

ここでは、このプレゼンの内容を順を追って紹介します。

1.【13.3インチLEDバックライト液晶パネル】
X300の液晶パネルはWXGA+(1440×900)への高解像度化を図ったことでWXGA(1280×800)に比べて表示情報量は28%増大。また、明るさは20%増しながらも25~80%の省電力化にも成功しています。さらに、2.5mm薄く、140g軽くなっています。(明るさや薄さ重量は従来の冷陰極管バックライト液晶パネルと比較したものだと思う)

2.【SSD(Solid State Drive)】
X300は、HDDから脱却しSSDを採用したことによってストレージデバイスの高性能化を実現しています。

  • Windows Vistaのブート時間を30%短縮
  • PCMark05によるベンチマークでは3倍以上のスコア
  • 耐衝撃性能は4~5向上
  • モーター、ヘッドなどの機械部品がないのでHDDに比べ信頼性が向上、動作音もないので極めて静か
  • 55%軽量化
  • 平均消費電力は85%低下

また、X300ではBIOSメニューからストレージ内のデータを完全消去できるユーティリティが提供されるので情報の漏えいを防止できます。(ビジネスや公官庁などの用途には最適だと思う)

X300ssd_2

3.【基盤】
X300のマザーボードはとても小さいです。こんだけです。

X300mother_2

T61と比べると基板面積は50%、重量は60%削減されています。これを実現できたのはインテルのSFF(Small Form Factor)[*1]とHDI(High Density Interconnect)[*2]基盤によるものです。
*1・・・CPU、ノースブリッジ、サウスブリッジ全てを小型パッケージにして各チップの占有面積を小さくしたもの
*2・・・高密度配線のこと

3.【LCDカバー】
X300はLCDカバー(天板)にも拘ってます。

X300cover_2 

PCの強度に直結する重要なLCDカバーはCFRP(炭素繊維強化プラスチック)とGFRP(ガラス繊維強化プラスチックのハイブリッド構造です。LCDパネル周りはCFRP、無線LANのアンテナが収められている部分にはGFRPを使用し、無線LANのパフォーマンスを低下させることなく高い強度を維持しています。

X300frp

実際、耐衝撃性能は従来のLCD Roll Cageに比べ薄型で47%軽量にも関わらず、向上しています。ボール落下衝撃テストの結果は次のようになっています。(T61より耐衝撃性能が上)

X300graph

またLCDカバーのみならず、本体の構造もキーボード・べゼルと一体化したマグネシウムのRoll Cage構造により、薄くなりつつも片手持ちをした時の内部重要部品へのストレスを15%低減しています。(しなりにくくなった)

4.【キーボード】
X300ではThinkPadフルサイズキーボードをさらに改良。

X300key

キータッチの切れを良くしてクリック感を向上(モバイル使用を考慮)させ、キーキャップ表面のコーティングにより高級感を出しつつも摩耗耐久性を3倍以上に向上させています。(このコーティングはX300のほぼ全体に施されている)キーストロークは短くなっているようですが、実際に触った感想としてはX60のキーボードよりも確実にタイプしやすくなっていると思います。

また、排水機構にも手が加えられています。従来の円形の排水溝から、水流の抵抗が小さくなる長方形にすることで排水効率が100%アップしています。

5.【省電力設計】
X300は歴代ThinkPadを超えた最高の省電力設計と謳われています。実際X300の消費電力はT61比でマイナス35%X61比でマイナス25%を実現しています。(EPEAT Gold、EPA Energy Star 4.0に適合)

X300はこの省電力設計だけに満足せず、使わない機能の電力使用をゼロにするパワーマネジメントによりさらなる省電力を促進しています。

  • オーディオ機能:音が必要なければオフ
  • DVDマルチ:メディアが挿入されていなければオフ
  • イーサネット:ケーブル未接続ならオフ

また、CPUの冷却ファンは回転スピード調整を3段階から、超低速回転を追加した4段階にしています。これは、CPUのリーク電流は一般的に温度が高いほど多くなるので、超低速回転で常にCPUを冷却することでリーク電流を抑え、省電力化に貢献しています。(この超低速回転はファンの消費電力とのバランスを考え、トータルで有利になる回転数を決定している)

6.【熱設計】
X300の熱設計は従来のXシリーズと比べて優秀であると言わざるおえません。発熱量はもちろんのこと、冷却能力とトレードオフになりがちな静音性も確保しています。

  • ファンが小さくても静かなふくろう羽ブレードを持ち、ThinkPadで最も軽量な新設計冷却ファンモジュール
  • 吸排気口最適設計による冷却用エアフローの改善
  • 冷却ファンの新コントロール手法による省電力化

これにより実現した低発熱の効果を見ると

X300temp_2

効果絶大です!X61sと比較するとその差は顕著です。

7.【ソフトウェア】
X300ではソフトウェア(主にThinkVantage)も従来のThinkPadから改良されていて、X60にもフィードバックして欲しいなぁなんて思いました。

  • 新規メールがくるとThinkVantageボタンが光る(メールはThinkVantageのメッセージセンターのものやPOP3メールに対応)
  • ThinkPadを閉じても指定した時間の間スリープしない機能(これ欲しい!!これは、ちょっと移動するときに欲しい機能として要望が多かったんだとか)
  • 省電力マネージャーの新機能:オプティカルドライブの自動パワーオフ機能(ドライブ内にメディアがないと10分でドライブのパワーをオフ)
  • プレゼンテーションディレクターの新機能:デフォルト・メニューをシンプルにし、画面切り替えアルゴリズムのチューニングにより画面切り替えをよりクイックに。また、「Fn+スペース」でアクティブ・ウィンドウを2ndディスプレイに移動できる。

8.【終りに】

X300end

NEXT:オレのターン篇

    閉会篇

PREV:始動篇

Thinkpad1

| | コメント (0) | トラックバック (1)

2008/02/26

ThinkPad X300製品発表会に行ってきた![始動篇]

ついに、「何か」を発表するときが来ました!

そう!「何か」とは「ブロガー向けThinkPad X300の製品発表会」のことだったのです。(私は2月20日にこのことを書いてしまいました。lenovoさん、ごめんなさいm_ _m)

発表会は六本木の泉ガーデンタワーの一室で行われました。集まったブロガーは9人(会場の様子からはもう少し来る予定だったのだと思う。残念なことに来られなかった人がいるのだろう。)

lenovoのスタッフと思われる人の親切な案内で会場に入ると、既にX300の実物が置かれていました。(X300が2台と部品)

P1000035_3

生でX300とご対面です!発表会が始まる前に少しの間X300を弄ることができました。このときの印象としてはX60と比べると大きく、どちらかというとTシリーズのような佇まいで、これはモバイル機として通用するのかと思うほどです。また、薄くて面積が広がったので剛性も心配になりました。(しなるノートPCって怖いですから)

まぁ当然ですが、13.3インチの液晶は広々としていてX60では表示すると窮屈なWindowsサイドバーを表示させても余裕があります。またX300を触った感触はX60と違っていて、コーティングがされていました。(なんと表現すればいいのだろう?他のブロガーさんが言うには昔のThinkPadにも同様のコーティングがなされていたらしい)

このコーティングは液晶パネルの周り以外には全てされているようで(底面が確認するの忘れた)とってもいい感じ!なんでも、高級感を出したかったのだとか。さすが価格35万超えです。このコーティングを無しにしてX300を安くしてくれとの声も聞こえましたが、私としては高くてもこのコーティングはしてあるほうがいいですね。

X300left

X300right 

X300back

NEXT:発表篇

         オレのターン篇

    閉会篇

Thinkpad1

| | コメント (0) | トラックバック (0)

X60 BIOS Update & ドライバ更新

2月15日に私のThinkPad X60のBIOSをアップデートしてVer.2.14にしましたが、ちょうどその日にVer.2.15が出ていました。2.15の修正内容は

[新機能または機能の拡張]
- コントロールパネル->電源オプション->詳細の電源オプションの"ポータブルコンピュターを閉じたとき"が"何もしない"に設定されている場合、画面を拡張デスクトップで使用している時、ポータブルコンピュターを閉じても、拡張デスクトップが維持される。

バグフィックスではないのでスルーでも問題ないかも。

Link:BIOS-ThinkPad X60/X60s

BIOS以外にもX300のサポートが追加されたThinkPad向けドライバがいっぱいリリースされています。(「せうの日記」より。記事「ドライバ更新祭り」には更新されたドライバの情報がまとめられています。)

Link:lenovo サポート&ダウンロード

| | コメント (0) | トラックバック (0)

X300モバイル環境テスト

レノボ・ジャパンの公式発表内にこんな記述が。

ThinkPad X300、北京五輪の世界聖火リレーに同行
新製品 ThinkPad X300ノートブックは、2008年3月にスタートする北京五輪の聖火リレーにおいて、最も過酷なモバイル環境で実地テストされることになります。

確かに、最も過酷だと思います(笑)

果たしてX300は耐えられるのだろうか?

| | コメント (0) | トラックバック (0)

X300は34万6500円から

ASCII.jpにて速報が出てます。

この速報のポイントはレノボ・ジャパンからの発表ということです。これは日本法人からの初の公式発表ということになります。

ということはレノボ・ジャパンのサイトにも動きが・・・と思って見に行ったら、ありました。「ニュース」のところに26日付のX300公式発表の記事が。

レノボ、13型画面のクラスで最軽量、最薄型のノートブックPC「ThinkPad X300」を発表

Pressx300

ASCII.jpによるとX300は26日発売とありますが、レノボの発表には発売日は書かれていない(と思う)ので誤りかもしれません。でも・・・

X300up

これ、X300ですね。(ThinkPad製品ページのもの、ついさっきまでX61だったと思う) なので、今日中にも動きがある可能性も捨てきれません。もう動きがありました!XシリーズのラインナップにX300が追加されました。購入することができるようになっています。

Link:ThinkPad Xシリーズ

X300の発売予定のモデルは3つあって、メインメモリの容量と保証期間の違いによるもので、

  • メモリ1GB、保証期間1年:346,500円
  • メモリ1GB、保証期間3年:357,000円
  • メモリ2GB、保証期間3年:365,400円

となっています。CPUは3モデルともCore2Duo SL7100 1.2GHzで富士通のLOOX R70Yに搭載されているものと同じものです。(PenrynではなくMerom世代だが、FSB800MHz、2次キャッシュ4MBに強化されている)

まぁ、私にはこの値段の3分の1+αまでが限度なので、残念ですがX300には手が出ないですねぇ。

---追記---

26日の夜、ThinkPad X300製品発表会に行ってきました。

| | コメント (0) | トラックバック (0)

Vista SP1では動作しなくなるプログラムがあるかも

Microsoftが、Vista SP1インストール後に動作しなくなったり、問題の発生する可能性のあるプログラムのリストを公表しました。(ほとんどはセキュリティ関係)

Link:Microsoftサポートオンライン

・・・このページの日本がひどい。翻訳ソフトで翻訳しただけみたいなページです。

それはさておき、実際に問題を解決するときはソフトを最新版へアップデートすればいいようです。また、このリストに載っていないソフトで問題が発生した場合は、まずPCを再起動し、それでも解決できないときはアップデートするなど、ベンダーと連絡を取ってほしいとのこと。

多くのソフト、プログラムは問題なく動作するようですが、なにせVistaは更新プログラムに問題が多いので心配です。

---詳細記事---

ZDNet Japan

| | コメント (0) | トラックバック (0)

ThinkPad X300の記事が出始めた

10:30現在、ThinkPad X300に関する記事がCNETに出ています。この記事”うわさの薄型「ThinkPad X300」、まもなく登場へ”によると、米国時間2月26日に正式発表のようです。(時差を考えると、あと9~10時間後でしょうか)

この記事ではバッテリーが10時間もつと書かれていますが、恐ら光学ドライブをはずして、代わりにバッテリーを装着した状態での時間だと思います。

他にもPCwatchでこんなものが、

Pcwatch

ThinkPad最薄ウルトラポータブルPC【ThinkPad X300】新登場!とあります。が・・・、このリンク先はThinkシリーズのWeb限定ストアのページで、まだX300はなかったです。(先走りすぎ)

なんにせよ、私は今夜「何か」があるので楽しみなのでありました。(「何か」があるのは私だけではないようですが)

私は一度この「何か」を漏らして怒られたので、しっかり約束を守ってから「何か」を発表したいと思います。

---追記---

このPC Watchの広告のリンク先には無事、X300が加わりました。また、他のサイトでもThinkPad X300の記事が続々あがってきています。

ITmedia+D:[大和の技術を結集した“究極のThinkPad”――「ThinkPad X300」発表会]

マイコミジャーナル:[レノボ、超薄型で重さ1.33kgからの13.3型ワイドノート「ThinkPad X300」]

PC Watch:[レノボ、1.42KgのSSD搭載モバイルノート「ThinkPad X300」]

| | コメント (0) | トラックバック (0)

2008/02/25

This week is ThinkPad X300 week

今週はThinkPad X300の週になると思う。

情報もリークされたものばかりでなく、公式のものが増えてきているように見える。

まさに「そこまで出かかっている」状況だ。

・・・たぶんね。

| | コメント (0) | トラックバック (0)

WindowsとLinuxをシームレスに!「andLinux」

MOONGIFTより。

この「andLinux」はWindows上でLinux環境をシームレスに動作させることができるソフトウェアです。このソフトはcoLinuxを利用して動作しているので、GUIを動作させるためにcygwinのX Window systemなどを使わずに済みます。

andLinuxはUbuntuベースで開発されており、デスクトップ環境はKDEもしくはXfceが利用できます。対応OSはWindows 2000、XP、2003、Vista32bitで、必要な容量はKDEバージョンが4.5GB、Xfceバージョンは2.5GBとなっています。

ただ、MOONGIFTの記事を読んでもわかるとおり、日本語には対応していないようです。(残念!!)

---参考サイト---
andLinux.org
andLinux.wiki.gp2x.org

Logo_header

| | コメント (0) | トラックバック (0)

忘れちゃいけないキャスト

私がよくつまづくキャストについて。

例えば15!を計算するときに次のように記述したとします。

double ans = 0;
ans = 15*14*13*.......*2*1;

階乗計算としては全く問題がないように見えますが、これには大きな間違いがあります。実際にコンパイルして実行すると15!の答えである1307674368000は出力されません。(JavaでもCでも2.00.....E09、つまり2.00....×10の9乗と出力されるはず)

なぜなら、右辺に書かれた数値リテラルをint型として捉え左から順に計算しているためにint型の最大値を超過、すなわちオーバーフローを起こしています。さらに、JavaやCではオーバーフローを起こしてもエラーや例外が発生しません。(コンパイラオプションに-Wallなどを加えておけば警告をだしてくれます)

これを防ぐには次のようにしっかりキャストしておく必要があります。

double ans = 0;
ans = (double)15*14*13*.......*2*1;

(Javaでは(double)15ではなく15dとすることもできます。)

もちろん、

double ans2 = 1;
for(i=15 ; i>=1 ; i--)
ans2 *= i;

とすれば正しく階乗計算をすることができます。

| | コメント (0) | トラックバック (0)

yumコマンド

使用頻度が高いyumコマンドのメモです。

yum install パッケージ名
指定したパッケージをインストールします。

yum update [パッケージ名]
パッケージ名を指定するとそのパッケージを、指定せず実行するとインストールされているすべてのパッケージを更新します。

yum check-update
更新可能なパッケージ名、バージョンなどの情報を一覧表示します。

yum remove パッケージ名
指定したパッケージを削除します。

yum search キーワード
指定したキーワードでパッケージを検索します。

yum info [オプション or パッケージ名]
パッケージの詳細な情報を表示します。

yum list [オプション or パッケージ名]
パッケージの一覧を表示します。

オプションについて
available:利用可能なパッケージ
installed:インストールされているパッケージ
recent:最近追加されたパッケージ
updates:更新可能なパッケージ

| | コメント (0) | トラックバック (0)

2008/02/24

EMOBILEを契約してきた

EMOBILE、契約してしまいました。

Pr_img20b_3

このD01NXは下り最大(HSDPA方式)3.6Mbpsの機種で、今ではHSDPA7.2Mbpsの機種も発売されていますが、HSDPA7.2Mbpsを利用できるのは東京、千葉、埼玉などの人口密集地だけであること、HSDPA3.6Mbpsの機種は1円で購入できる(池袋のビックカメラでは1円でした)ことを考えると3.6Mbpsの機種でいいかなと。

また、現在キャンペーン中らしく、3月いっぱいまで料金が無料だそうです。(つまり、料金がかかるのは4月ぶんから)

自宅のブロードバンド環境と比べればモッサリするのも否めませんが、思ったより快適に通信することができます。後は地方のサービスエリアが拡大してくれれば言うことなし。

---Link---

EMOBILEホーム

D01NX製品情報

料金プラン

サービスエリア

---追記---

回線速度を計測してみました。

東京都 大塚
SPEED 2.5 (speed.rbbtoday.com)
計測日時 : 2008年2月25日月曜日 10時38分08秒
  下り(ISP→PC): 1.02Mbps
  上り(PC→ISP): 62kbps

東京都 赤坂
SPEED 2.5 (speed.rbbtoday.com)
計測日時 : 2008年2月25日月曜日 13時51分42秒
  下り(ISP→PC): 1.24Mbps
  上り(PC→ISP): 362kbps

東京都 巣鴨
SPEED 2.5 (speed.rbbtoday.com)
計測日時 : 2008年2月25日月曜日 16時37分15秒
  下り(ISP→PC): 1.11Mbps
  上り(PC→ISP): 365kbps

| | コメント (0) | トラックバック (0)

風が・・・

東京に出てきて、雪の悩みからは解放された(でも、連日雪マークなので車がつぶされていないかとても不安)のですが、今度は風に悩まされております。

この強風のせいで電車のダイヤに乱れがでるし、困ったものです。(群馬のからっ風みたいだ)

---追記---

どうやら東京だけでなく、全国的に大荒れの天気だったようですね。しかも、日本海側の方が大変なことになってるし。

Link: asahi.com、  NIKKEI NET

| | コメント (0) | トラックバック (0)

2008/02/23

PlayStation Homeの開発ツールが公開された(でも一般人に公開されるわけじゃないのね)

とは言っても「PlayStation Home」自体、サービスが延期されたために何だかよく分かりませんが。(さらに言えば、PLAYSTATION3の普及もままならないわけで・・・)

ですが、SCEはHomeの開発ツールをサードパーティに公開することでHomeにセカンドライフのような自己増殖能力を付加したいみたいですね。

いきなりですが、Home内のミニゲームなどは「Lua」を使って開発するようです。(最近LuaとかErlangなど新しい言語がどんどん出てくる)

でも、Luaって日本語の書籍がこれくらいしかないんですよね。(そもそもLua関連書籍が少ないし)

私は、SCEにはまずPS3の低価格化とソフトの充実、PS2のソフトウェアエミュレーションに力をいれてほしいです。

---詳細記事:GAME Watch---

---追記---

今日ジュンク堂書店に行ったら、このLua本がいたるところに分散配置されていてなんだか微笑ましかった。

| | コメント (0) | トラックバック (0)

X300の公式サイトオープン(US)

lenovo(US)にThinkPad X300のページがオープンしていました。

X300site

日本ではX300の公式ページはおろか公式発表もまだ(だと思う)されていないので、一般公開はもう少し待つ必要がありますが。(そもそもThinkPadは日本で設計されているんだから、もっと情報を公開してほしい)

| | コメント (0) | トラックバック (0)

VMware Server2βの使い方がわからない

VMware Server2βが発表されてだいぶ経ちましたが、いまだにちゃんと使えていません。

VMware Server2β(以後Server2)はServer1違って、コンソール操作はすべてブラウザ上で行います。(そのためTomcatが一緒にインストールされる)

私の場合はインストールした直後にコンソールを起動するとブラウザに「表示できません」と怒られました。これは、Tomcatの設定画面でJREを普段使っているJREに変更したら解決しました。(デフォルトではServer2と同時にインストールされたJREが指定されている)

JRE変更後、コンソールを起動するとIDとパスワードの入力画面が表示され、ログインするとServer2のメニュー画面が表示されます。(このときセキュリティがどうのと警告がでると思います)

で、問題はこの後。新しい仮想マシンを作ろうとしても先に進みません。調べても情報が少ない上に、私と似たようなトラブルで先に進めない人も多いので分からないままです。

| | コメント (0) | トラックバック (0)

2008/02/22

Study HTML 3

HTML勉強メモその3

ハイパーリンクについて

1.リンク情報を表現する:アンカー要素(a要素タイプ)
他の文書へのリンクを表現するにはa要素開始タグに参照先を示す情報(属性)として、「href="リンク先URL"」を加えます。例えば次のようにします。

<a href="http://www.google.co.jp/">Googleにリンク</a>

2.文書の特定の場所へのリンク:フラグメントの指定
ある文書A「詳細を表示」から文書B「詳細」にページをジャンプさせます。

step.1:Bを示す要素にフラグメントの名前を付ける。
step.2:Aを先のアンカー要素でリンク元に設定する。このときリンク先ファイル名(B)の後ろに#名前としてターゲット要素(フラグメント)の指示を加える。

名前を付けるには2つの方法があります。

  • 対象となる要素にid属性を使って名前を付ける
  • アンカー要素のname属性を使って名前を付ける

id属性はHTML4から導入されたものなので互換性を重視する場合はname属性を使うようです。具体的な名前の付け方は例えば次のようにします。

  • <p id="to_detail">詳細</p>
  • <p><a name="to_detail">詳細</a></p>

XHTMLではid属性を使うことになっているようですが、XHTML1.0では互換性に配慮してa要素に同じ値のidnameを併記することができるようです。(<p><a name="to_detail" id="to_detail>詳細</a></p>)ただし、XHTML1.1以降はa要素のname属性は廃止されるのでid属性のみしか使えません。

次にフラグメントにリンクさせます。あるファイルの特定箇所にリンクさせるには

<a href="nantarafile.html#to_detail">詳細を表示</a>

また、インターネット上のリソースの場合は

<a href="URL/nantarafaile.html#to_detail">詳細を表示</a>

さらに、同じファイルの特定箇所へのリンクは

<a href="#to_detail">詳細を表示</a>

という感じです。このほかにもフラグメントの名前を付けるときなどに注意が必要です。

Link:Study HTML 4

| | コメント (0) | トラックバック (0)

端末を起動した時に任意のコマンドを自動実行させる

端末を立ち上げたら毎回確実に実行するであろうコマンド(screenとか)を毎回入力するのは面倒です。(煩わしくもある)

ならば、端末を起動したときに自動実行すれば・・・と思ったので、何かやり方はないかと調べてみました。

1.シェルの深さを調べる
 シェルには”深さ”というものが設定されていて、SHLVLという環境変数に深さの値が保持されています。この値を調べるには$ echo $SHLVLで調べることができます。ログインシェルだと値は「1」(coLinuxだとログイン直後はたぶんこの値)、子シェルだと値は「2」(LinuxをGUIでログインした後に端末を起動するとこの値)、孫シェルだと値は「3」になります。

2.自動実行するように設定する
 つまり私が考えた自動実行の方法とは、あるシェルの深さのときにコマンドを実行するようにさせようというものです。私はbashなので、ホームディレクトリ下の「.bashrc」に以下を追加します。(zshなら「.zshrc」)

if [ $SHLVL = 2 ]; then
   任意のコマンド
fi

私の場合はVMware上のFedoraをGUIでログインした後、端末を起動しているので$SHLVL = 2となっていますが、coLinuxなどでLinuxをCUIでログインしている人は$SHLVL = 1とすればいいと思います。

また、任意のコマンドにはScreenを起動したかったらscreenと記述し、Emacsだったらemacs &と普段入力するコマンドを記述してください。(複数のコマンドを記述することも可能です)

| | コメント (0) | トラックバック (0)

頼むからデータだけでも返して!

最近、大学からパソコンが盗まれる事件は多発しているようです。(お昼のニュースでも言ってたし)

ちょっと気になったのでGoogleで「大学 パソコン 盗難」で検索してみたら、いろんな大学で盗まれてるようです。(大学ってそんなにセキュリティ甘いのだろうか?)

この時期に盗むのは勘弁してほしいなぁ。(もちろん窃盗そのものがダメですが)卒研の研究データとか論文が入ったまま持っていかれるのはパソコン本体よりも被害がデカイ・・・

結論:めんどくさがらずしっかりバックアップをとろう。

| | コメント (0) | トラックバック (0)

容量5GBの無料ストレージサービス「Skydrive」

Microsoftが今日、無料のオンラインストレージサービス「Skydrive」を正式公開しました。β版では日本語は未対応でしたが、正式版では日本語にも対応しています。

Windows Live IDを取得すれば誰でも5GBのオンラインストレージを利用可能になります。(ただし、アップロードするファイルは最大50MBまで)

個人で使用するフォルダのほか、他のID所有者を指定して共有できるフォルダや不特定多数に公開できるフォルダを設定できるようです。

5GBの大容量を利用できるのはスゴイですが、1ファイル50MBまでっていうのはいただけないなぁ。せめて100MBまでアップできるようにしてほしいです。(ISOイメージファイルとか動画ファイルをアップロードさせないためなのはわかりますが)

| | コメント (0) | トラックバック (0)

Clear Typeを有効にする

ふと気がついた。うちのVista、メイリオフォントなのにギザギザしてる・・・。

メイリオってClear Type(アンチエイリアスを行ってフォントを滑らかに見せる)の使用を前提としているはずだからこんなことはありえないはず。

というわけで、Clear Typeが有効かどうかは以下の操作で確認することができます。

1.デスクトップ上で右クリック
2.「個人設定」を選択
3.「ウィンドゥの色とデザイン」を選択
4.「詳細な色のオプションを設定するにはクラシックスタイルの[デザインプロパディ]を開きます」を選択
5.「デザインの設定」ウィンドゥが開く
6.「効果」ボタンを押す
7.「次の方法でスクリーンフォントの縁を滑らかにする」のチェックボックスをチェックする
8.プルダウンから「Clear Type」を選択(デフォルトはClear Typeになっているはず)

私のVistaはデフォルトでClear Typeが有効になっていませんでした。(なんで有効にしてないんだろう)有効にしたとたん印象がガラリと変わったので、有効と無効の比較をしてみました。(わかりにくいかも)

[無効]
Nct

[有効]
Ct

| | コメント (0) | トラックバック (0)

2008/02/21

Happy Hacking Keyboardが欲しい・・・

Happy Hacking Keyboard、欲しいです。その使い心地を聞けば聞くほど。

た、高い・・・。買えないゼ。(キーボードに出せるのは1万円までだなぁ)

配属希望の研究室に少し古めのHHKが転がってるのを見たので、狙ってます。(たぶん私以外使おうとしないし)

| | コメント (0) | トラックバック (0)

コラッツの問題

コラッツの問題とは、ある自然数nに対し

  • nが偶数ならnを2で割る
  • nが奇数ならnを3倍して1を加える

を繰り返すと最終的にnは1になるというものです。詳しいことはWikipediaを読んで下さい^^;(このブログ、難しいことはいつもWikipediaまかせなのです)

これ、何が問題かというと「初期値にどんな自然数を与えても最終的には1に到達するのか」という問題です。(未だ未解決だが、3×2の53乗までは確かめられている)

コラッツの問題で行う操作をC言語プログラム化したのが次のコードです。(2007年のパソコン甲子園本戦問題にもなっています)

#include 

int collatz(int n)
{
  int count = 0;

  while(n != 1){
    n = (n%2 == 0) ? (n / 2) : (n*3 + 1);
    printf("%d\n", n);
    count++;
  }

  return count;
}

int main(void)
{
  int n, count;

  printf("Input n:");
  scanf("%d", &n);
  count = collatz(n);
  printf("COUNT:%d\n", count);

  return 0;
}

例えば、nに5を入力すると5,16,8,4,2,1で繰り返した回数が5回となります。

| | コメント (1) | トラックバック (0)

DreamSpark

Microsoftが学生(現在は大学生のみ)に対し、Microsoftの有償ツールを無料で提供する「DreamSpark」を開始しました。提供されるツールは、

  • Visual Studio 2008 Professional Edition
  • Expression Studio
  • Windows Server 2003 Standard Edition
  • Xna Game Studio

など、豪華目白押しです。ビル・ゲイツ氏は同社製品を使う選択肢を与えてLAMP(Linux Apache MySQL PHP)に対抗したいようです。

すでにDreamSparkのサイトも立ち上がっていてアクセスすることもできます。

Link:DreamSpark

実は、まだ対象国は制限されていて、アメリカ合衆国、イギリス、カナダ、中国、ドイツ、フランス、フィンランド、スペイン、スウェーデン、スイス、ベルギーの11カ国のみです。

半年後には日本も対象国に入るとの情報もあるので、首を長くして待ちたいと思います。

---詳細記事---

ITmedia

マイコミジャーナル

Open Tech Press

| | コメント (0) | トラックバック (0)

2008/02/20

Study HTML 2

HTML勉強メモその2

1.タイトル: <title>~</title>
HTML文書のタイトルを設定します。文書についての情報なのでhead要素内に記述します。

2.見出し: <h1>~</h1> (body要素内)
本文のまとまりを分かりやすくするための見出し(heading)を設定します。タグにはh1~h6までが用意されていて、数字が小さくなるほど重要度が上がります。(ブラウザによっては文字の大きさが変化したりします。)

3.段落: <p>~</p>
文字どおり段落を示します。

4.改行: <br>
改行を示します。普通のタグには開始タグと終了タグをペアで用いますが、改行タグは開始タグのみを用います。このように、内容を持たず終了タグもない要素は空要素と呼ばれます。XHTMLでは終了タグがないことを明示するために[ /> ]という特別なカタチで閉じます。改行タグの場合は<br />となります。

---[Info]---

・ブロックレベル要素:見出しや段落のように本文を構成する単位(ブロック)になる要素

・インライン要素:改行などのようにブロックの一部分に対して作用する要素

Link:Study HTML 3

| | コメント (0) | トラックバック (0)

Study HTML 1

HTMLの勉強メモです。

[基本事項]

<html>

<head>
…titleなどの文書情報要素を書く
</head>

<body>
…本文を構成する要素を書く
</body>

</html>

HTML文書は<html>~</html>に記述します。HTML文書のヘッダー部分は<head>~</head>に記述し、ボディ部分は<body>~</body>に記述します。

このhead要素とbody要素は1つの文書にそれぞれ1回しか使えません。

---[Info]---
旧来のHTMLではタグは大文字、小文字が混在していてもよいことになっていましたが、XHTMLではタグや要素型名が小文字に統一されています。

Link:Study HTML 2

| | コメント (0) | トラックバック (0)

Vista、Windows Updateでまた不具合

先日の2月の月例パッチで不具合が発生する可能性があるみたいです。

その不具合とは、アップデートをインストールした後「configuring updates 3 of 3.0% complete」というメッセージが表示され何度も再起動を繰り返すというもの。

これはどうやら「KB937287」というVista SP1をインストールするために必要な更新プログラムのようです。Microsoftオンラインサポートによると、

更新プログラム 937287 は、Windows Vista インストール ソフトウェア用の更新プログラムが含まれている必須パッケージです。インストール ソフトウェアは、ソフトウェア更新プログラム、言語パック、Windows のオプション機能、および Service Pack のインストールと削除を処理するコンポーネントです。更新プログラム 937287 は、Windows Vista SP1 を正常にインストールおよび削除するために、すべてのバージョンの Windows Vista で必要です。

この更新プログラムによる不具合を解決するにはセーフモードで起動し、「システムの復元」でインストール前の状態に復元するしかないようです。

Windows Updateの度に重大な不具合が発生するようでは安心できないので、Microsoftにはしっかりして欲しいものです。

---追記---

今日のCNETの記事によると、このKB937287はアップデートの自動配信が停止されたようです。

| | コメント (2) | トラックバック (0)

ThinkPad X60 メモリ増設

X60のメモリを増設しました。

X60の標準メモリは512MB×2で、これを買ってすぐに片方をバッファローのD2/N667 2GBに変更して2.5GBにしていました。

そして今度は、もう片方の標準メモリをD2/N667 1GBに変更して合計3GBにしました。(2GBのメモリを増設して4GB搭載することもできますが、私のVistaは32ビット版なので最大3GBまでしが認識できません)

これで2GBぶんはデュアルチャネルで稼働するし、VMware上の仮想マシンに割り当てられるメモリ量を増やすことができます。

価格.comで2月17日の時点での最安値がAmazonだったのはびっくりでした。

Thinkpad1

| | コメント (0) | トラックバック (0)

ThinkPad Xシリーズ新製品のブロガー向け製品説明会の案内が送られてきた

題名の通りでございます。

2月26日の「ThinkPad Xシリーズ」新製品のブロガー向け製品発表会の案内が今日突然メールで送られてきました!(ブログはじめてよかった^0^)

この発表会では実際に新製品にも触れられるみたいです。(やったー\^0^/)

会場は東京、六本木の泉ガーデンタワーというころ・・・

私、26日ってちょうど東京にいます。(なんとも都合がいいなぁ)

今から待ち遠しいです。間違いなくX300のことだろうし。

一体、どんなブロガーが来るんでしょうかねぇ。

---追記[2/26 21:35]---

これを書いたときは、この内容はNGだったので今日まで削除してました。再掲載するとともに、製品発表会の様子を紹介したいと思います。

Thinkpad1

| | コメント (0) | トラックバック (0)

2008/02/19

ちゃんとHTMLを勉強する

よくよく考えると、HTMLのことよく知らないんですよね。

見よう見まねでいじったりすることはありましたが、理解していないので毎度苦労しています。

春休みなので、一度ちゃんと勉強しようかと思います。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

こういう宣言が何を意味しているのかとか理解したいですし。

| | コメント (0) | トラックバック (0)

フィボナッチ数を求める

フィボナッチ数、それは自然界の現象にも数多くみられる不思議な数です。(詳しくはWikipediaを

n番目のフィボナッチ数をFnで表すと、

Fibo

と定義されます。これをプログラムにすると

  i, n, f_old, f, f_new;
  f_old = 0; f_new = 1;
  Input n;
 
  for(i=2 ; i<=n ; i++){
    f_new = f + f_old;
    print f_new;
    f_old = f;
    f = f_new;
  }

注)これは、なんちゃってコードです。

このコードを見てもわかるとおり、フィボナッチ数を求めるプログラムは繰り返しと変数の更新だけで実現できます。

C言語を始めたばっかりの頃にフィボナッチ数を求めるプログラムを課題にされたときは難しく感じたのですが・・・。(しみじみです)

| | コメント (1) | トラックバック (0)

2008/02/18

ニュータイプ

4Gamer.netに富野由悠季御大の台湾での講演内容が動画つきで掲載されていました。

Link:「だから、日本の深夜アニメはつまらない」ガンダムの父・富野由悠季氏の講演をムービー込みで掲載

基本的には、アジア青年アニメコンテストに招聘された御大(富野氏のこと)がアニメ論について語っているのですが、御大の言葉にはアニメの枠を超え、『ものづくり、クリエイトとはかくあるべき』というものがあるので一読することをお勧めします。

とくに評することはしませんが、読んでみて思ったことは、「ニュータイプとは御大のことではなかろうか」です。

御大の作品に出合ってかれこれ19年、小3のとき小説版「機動戦士ガンダム」を苦労しながら読んだのが懐かしい・・・。(内容を理解したつもりになれたのは5、6年後ですが)

| | コメント (0) | トラックバック (0)

Design Mattersにも

Design Matters(lenovo公式ブログ)にX300の記事がアップされました。

今までリーク情報ばかりでしたが、やっと公式にX300が登場したわけです。

Design Matters:The Pursuit of Perfection

X300le

コンセプトは『可能な限り、薄く軽く』のようです。

昨日は中途半端とか言ってましたが、X300のカスタマイズの幅が広ければアリだなぁ、なんて思ってます。(ワンスピンドル化してCPUの選択肢を増やすとか、富士通みたいに光学ドライブをはずしてバッテリー増設できるようにするとか←これ、できます。)

とりあえず、はやく実機を見たい!

| | コメント (0) | トラックバック (0)

2008/02/17

JavaScriptをWeb上で開発

JavaScriptをテキストエディタとブラウザだけで勉強している人は「もっと手軽にJavaScriptを実行できないだろうか」と思いませんか?・・・思ってください。

そこでコレ。

Tide

TIDE[http://www.tide4javascript.com/]はWeb上で動作するIDEで、さらにTIDE上でJavaScriptを実行することもできます。

TIDEにはサンプルプログラムも登録してあるらしいのでJavaScriptを勉強する人にはもってこいのツールかと。(立ち上がりは若干遅いです)

| | コメント (0) | トラックバック (0)

雪が止まねぇ・・・

ただいま深夜2時すぎです。

雪かきしてきました。(正確には車の雪下ろし)

金曜から降っては止みを繰り返した雪が私の車を飲み込みだしたので、雪かきしてきました。(雪かきを終えてみると、しておいてよかったと思う。隣の車は地上の雪と車に積もった雪の境界線がなくなって雪うさぎみたいになってる)

Yuki

車に積もった雪を下ろしたら、タイヤが完全に埋まり、ドアを開けるのも一苦労です。

気づいたこと:雪雲のせいで、真夜中なのに空が黒くない。白かった。(ライトがなくてもそこら辺が見える)

| | コメント (0) | トラックバック (0)

2008/02/16

ThinkPad X300をどうするか

X300v1 ThinkPad X300 - ThinkPadファンには広く知られているXシリーズの期待のルーキー。

既存のXシリーズとは違って13.3インチ(1440×900)の液晶、2スピンドル構成でストレージには1.8インチSSDを搭載していて、なんだかMacBook Airを意識しているように見受けられます。

X300は他にもUWB(ワイヤレスUSB)やGPS搭載など見どころ盛り沢山ですが、2スピンドル化に伴う空きスペースの減少や省電力のためにCPUは低電圧版Core2Duo 1.2GHzです。

バッテリの持ちと重量は従来のXシリーズと同程度となっていて、大きさ以外はモバイル性を犠牲にしていないみたい。

TシリーズとXシリーズの折衷的なX300、買って使い心地を体感してみたいけど、若干中途半端な印象なのは否めません。(X61とかT61の後継機が発表されたら間違いなく気持ちがそっちに傾く気がする・・・)

Link:PCとほほ日記

---X300関連記事(このブログ内)---

X300製品発表会に行ってきた!

| | コメント (0) | トラックバック (0)

2008/02/15

3年生も終わったことだし

実質的に3年生も終わって、たぶん4年生になれるはずなので、これからに向けて行動を起こそうかと思いました。

まずは「iKnow!」の再開。これは始めてすぐに期末テストが迫ってきたので忘れていましたが、これからはちゃんと英語の勉強したいと思います。英語ドキュメントをバリバリ読めるようになりたいし。

あと偶然見つけたのがタスク共有サイト「fixdap

Fixdap

今後使うこともあるかなぁと思って登録してみました。

他には微分積分、線形代数とか基本情報技術者の勉強でしょうか。

| | コメント (0) | トラックバック (0)

コマンドライン引数[Ruby]

Rubyでコマンドライン引数を使うためのメモです。

Rubyには組み込み定数ARGVというものがあります。このARGVはコマンドライン引数を格納する配列です。C言語のコマンドライン引数とは違い、ARGV[0]から引数が格納されます。

例えば、次のようなプログラム(argv.rbとする)があるとします。

ARGV.each{ |arg| puts arg }

これを実行すると

$ ruby argv.rb a b c d e
a
b
c
d
e

となります。また、

def function(a, b)
  return (a+b)
end

puts function(ARGV[0].to_i, ARGV[1].to_i)

このプログラム(argv2.rb)を実行すると

$ ruby argv2.rb 40 60
100

となります。

| | コメント (0) | トラックバック (0)

ThinkPad X60 BIOS Update

X60を買ってすぐにBIOSを一度アップデートして以降、放置状態でしたが、サポートサイトを覗いてみると2007年10月にBIOSの新バージョンが出てました。

新しいバージョンは2.14で、先日のsysteminfoの出力ではバージョン2.13となっているから見間違いではなさそう。(systeminfoって便利だ)

さらに、新バージョンの修正内容を見ると・・・

-Vista WindowsPE において、4GB以上のメモリーへのアクセスが出来ない場合がありました。

-ハイバネーション中にBIOS SetupのConfigの変更して、ハイバネーションから復帰後、変更されたデバイスが認識されない等のエラーがまれに発生しました。

-ThinkPad BIOS Setting for Windows(SRCMOS)の実行後、ハイバネーションから復帰時まれにポストエラーが発生しました。

-電源立ち上げ時の指紋認証の処理を改善しました。

-ドッキング経由でアナログモニターを接続してこちらの解像度をSXGAに設定した時、システム本体のドッキング、アンドッキングを繰り返していると稀にモニターの解像度がXGAに変更されてしまう問題がありました。この問題を修正しました。

下の2つに関して身に覚えがあったので、アップデートしました。

---Download : BIOS ver.2.14 - ThinkPad X60/X60s---

ところで、WindowsPEって何だろう?

Thinkpad1

| | コメント (2) | トラックバック (0)

2008/02/14

Rescue and Recovery 4.2 Windows Vista SP1 用パッチ

ThinkVantate Rescue and Recovery 4.2のWindows Vista SP1用パッチが出ました。

SP1をインストールする前にパッチを適用するのをお忘れなく。

---lenovo Japan : パッチ配布ページ---

| | コメント (0) | トラックバック (0)

アンチウィルスソフトくらいはインストールしておくべきかと・・・

なぜかアンチウィルスソフトをインストールしなくても平気の人がいる。(この中にはWinnyやShareを使っている猛者もいる)

アンチウィルスソフトをインストールしているから安心というわけでもないが、何かしらのソフトをインストールしておいて欲しいもの。

なぜインストールしないのか?と聞くと、「値段が高いから」、「動作が重くなるから」、「インストールって何?」等の返事が返ってくる。「動作が重くなる」には概ね同意するが、「高いから」というのは同意できない。

最近は年間で1万円もかからないわけだから、この程度の金額をケチってPC(さらには個人)を危険に晒すのはいかがなものかと。(Nortonだって5千円でPC3台にインストールできる)

それでもお金を払いたくない人や、何台もPCを持っていてソフト代がかさむ人もいるでしょうから、フリーのアンチウィルスソフトを紹介したいと思います。

以前からフリーのアンチウィルスソフトは存在していて、「avast! Home Edition」が有名でしたが、avastは無料のユーザー登録をしてプロダクトキーを発行してもらう必要がありました。(有効期限は1年ですが、何度でも発行してもらえます)

ですが、これは面倒(特に電話でインストール方法を聞かれたとき)なので、私は「AVG AntiVirus Free Edition」を使っています。登録などの煩わしい作業がないので楽です。ちなみにWindows Vistaでも使えます。

| | コメント (0) | トラックバック (0)

FizzBuzz問題

1年くらい前に話題になったFizzBuzz問題を取り上げてみたいと思います。FizzBuzzは英語圏の遊びで、ルールは次のようになっています。

最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「Fizz」、5で割り切れる場合は 「Buzz」、両者で割り切れる場合は 「Fizz Buzz」 を数の代わりに発言しなければならない。発言を間違えた者やためらった者は脱落となる。[Wikipedia]

そして、FizzBuzz問題とは

このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードがかけないプログラマ志願者を見分ける手法を Jeff Atwood が FizzBuzz問題 (FizzBuzz Question)として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている[Wikipediaより抜粋]

つまり、「数分でFizzBuzzのプログラムが作れないならプログラマを志願するな」ということです。これはプログラマを志願する私としては放っておけなかったので挑戦してみました。

特にカッコいいことをしようとしなければすぐにできます。

#include <stdio.h>

int main(void)
{
  int i;
  for(i=1 ; i<=100 ; i++){
    if(i%15 == 0)
      printf("FizzBuzz\n");
    else if(i%3 == 0)
      printf("Fizz\n");
    else if(i%5 == 0)
      printf("Buzz\n");
    else
      printf("%d\n", i);
  }
  return 0;
}

elseを使わずに書くとこんなのかな。

int main(void)
{
  int i;
  for(i=1 ; i<=100 ; i++){
    if(i%3 == 0)
      printf("Fizz");
    if(i%5 == 0)
      printf("Buzz");
    if(i%3 != 0 && i%5 != 0)
      printf("%d", i);
    printf("\n");
  }
  return 0;
}

| | コメント (0) | トラックバック (0)

コマンド:systeminfo

Windowsのコマンドプロンプト(cmd.exe)で使えるコマンドに「systeminfo」というコマンドが存在します。このコマンドはWindowsのシステム構成情報を表示します。

また、インストールされているホットフィックス、ネットワークやリモートコンピュータの情報も確認することができます。

>systeminfo [オプション]

オプションの使い方は >systeminfo /? で調べられますが、無しでもOKです。

実際に私のThinkPadでsysteminfoを実行してみるとこんな感じになります。

| | コメント (0) | トラックバック (0)

2008/02/13

Firefox3 Beta3

Firefox3 Beta3がリリースされました。

Foxb3_2

Beta3ではデザインがちょこっと変更されています。(戻る・進むボタンをIE7風にしたらしい)改善点などの情報やダウンロード、インストールはリリースノートを。

なお、以前のBeta版を使っている場合は「ヘルプ」メニューから自動更新が可能になっています。

| | コメント (0) | トラックバック (0)

MS月例パッチ・2月

2月の月例パッチは11件です。このうち6件が「緊急」レベルです。KB943899みたいなトラップがないことを祈ります。

---詳細---

| | コメント (0) | トラックバック (0)

日経Linux2008年3月号

今月の日経Linuxの特集は、

  1. Eee PCにLinuxをインストールして楽しむ
  2. ファイルシステム徹底解説

です。特集1では

  • OSをWindowsからLinuxに入れ替え(Ubuntu7.10とFedora 8のインストールを紹介)
  • デュアルブート環境を構築(LinuxはSDHCメモリーカードにインストール)

を紹介しています。この他にも玄箱PROとiPodにLinuxをインストールする方法を紹介しています。

特集2ではPart1で既存のファイルシステムを解説し、Part2で次世代ファイルシステム「ext4」を解説しています。(ファイルシステムって奥が深いですね)

今月の付録DVDにはVine Linux 4.2のVMware用イメージが収録されていたので、試しに使ってみたのですが、Fedora系とは違った趣のあるディストリですね。

| | コメント (0) | トラックバック (0)

2008/02/12

べき剰余を求める

RSA暗号プログラムべき剰余を計算する必要がありましたが、べき剰余を計算するプログラムをまだ紹介していなかったのでここで。

#include <stdio.h>
#define N 28

int imod(int a, int n)
{
  int r;
  r = (a + n) % n;
  if(r < 0) r += n;
  return r;
}

int pow_mod(int a, int e, int n)
{
  int r = 1;
  a = imod(a, n);
  while(e > 0){
    if ((e & 1) == 1) r = imod(r*a, n); 
    e >>= 1;
    a = imod(a*a, n);
  }
  return r;
}

int main(void)
{
  int a, e;
  printf("input a:"); scanf("%d", &a);
  printf("input e:"); scanf("%d", &e);

  printf("%d^%d (mod %d) = %d\n"
          , a, e, N, pow_mod(a, e, N));

  return 0;
}

べき剰余を計算するのは関数pow_modです。

| | コメント (0) | トラックバック (0)

2008/02/11

public static void main(String[ ] args)

Javaのmainメソッド public static void main(String[ ] args) についてのメモです。

C言語のmain関数に相当するものです。ちなみに、修飾子「public」と「static」はどちらが先に来ても問題ありませんが、public staticと書くのが一般的です。

mainメソッドは引数を一つだけとり、それはString型の要素の配列です。(String[ ] argsのこと)この引数はコマンドライン引数と呼ばれます。この引数の名前は何でもいいのですが、"args"とか"argv"と書かれることが多いようです。(このargsやargvのargはArgument=引数だと思いますが、"s"とか"v"って何?)

コマンドライン引数は配列ですが、Javaでの配列の宣言はC言語と少し違います。C言語では

int array[10];

と宣言しますが、Javaでは

int[ ] array;
array = new int[10];

と宣言します。C言語のように int array[ ]; と宣言することもできますが、推奨されていません。(高橋麻奈 著 「やさしいJava」では非推奨の宣言をしている)

| | コメント (0) | トラックバック (0)

2008/02/10

PSファイルをPDFに変換+AdobeReaderをインストール

前回DVIファイルを正常にPSファイルに変換できるようになりましたが、どうせならPDFファイルにしてしまおうと。

PDFへの変換は簡単で、ps2pdfコマンドで変換できます。

ex) $ ps2pdf test.ps

すると、同名のtest.pdfが出力されます。このPDFファイルはFedora 8標準のevinceでも表示できますが、せっかくなのでAdobe Readerをインストールしてみたいと思います。

まず、Adobe ReaderのダウンロードページからRPMパッケージファイルをダウンロードします。これを適当なディレクトリに置いて、

$ su

# rpm -i AdobeReader_jpn-8.1.2-1.i486.rpm

とすればAdobeReaderがインストールされます。AdobeReaderの起動にはacroreadコマンドを使います。先ほど作ったPDFファイルはもちろんAdobeReaderでも表示できます。

| | コメント (0) | トラックバック (0)

PostScriptの日本語表示ができた[Fedora8]

Fedora 8でのTeXには苦労させられてきました。

前までは日本語TeXをplatexでコンパイルした後、pxdviでDVIファイルを開いても日本語が文字化けするのをフォントのパスを書き直すことで解決しましたが、pdvipsでDVIファイルをPSファイルに変換しても日本語が表示できないでいました。

これはさすがにお手上げで、今まで放置してたのですが、今日気まぐれでPSファイルを作ってみたらちゃんと日本語表示ができるようになっていました!

たぶんアップデートで解決されたんでしょう。これでpdvipsでPSファイルを作れるようになりました。(注意することはDVIファイルと同名のPSファイルにすることくらい)

ex) $ pdvips test.dvi > test.ps

| | コメント (0) | トラックバック (0)

X60用8セルバッテリを買った(非純正)

ついにThinkPad X60用大容量8セルバッテリを買いました。でも、純正品は高くて買えなかったので「ロワジャパン」で互換品を買いました。(純正品の半値)

正直、互換品は不安だったのですが、純正品とは貼られているシールが違うくらいで、質感などは純正品とそっくりです。

試しに8セルバッテリを装着してみたところ、「純正品ではない」と警告がでました。

Cautionb

起動時にこのメッセージとバッテリメーターの横に「!」が表示される以外は特に問題ないです。(今のところは)

もちろん、今まで使っていた純正4セルバッテリは保管するわけですが、リチウムイオンバッテリは50%前後で保管するのがいいらしいです。

| | コメント (0) | トラックバック (0)

2008/02/09

1-Click Award

1-Click Award面白いアイディアですね。

おじさんをクリックすると・・・

| | コメント (0) | トラックバック (0)

RSA暗号プログラム

本丸のRSA暗号プログラムです。RSA暗号/復号を処理する関数は次のようになります。

//---RSA Encryption & Decryption---
void rsa_angou(int xy[2], int key[2], int stu[3])
{
  int m, code;
  (mode == 1) ? (m = bind2(xy)) : (m = bind3(stu));
  code = pow_mod(m, key[0], key[1]);
  (mode == 1) ? (split3(code, stu)) : (split2(code, xy));
}

引数には(2文字を格納した配列、鍵を格納した配列、3文字を格納した配列)を与えます。関数内で使われているmodeという変数はmode == 1のときは暗号モード、mode != 1のときは復号モードで処理するために設定したものです。

また、この関数内にはpow_mod(a, b, c)やbind、splitといった関数が存在していますが、pow_mode(a, b, c)はaのb乗(mod n)を計算するもの(後述)、bindやsplitは次のようになっています。( #define N 28 )

//---{x, y} --> x*N + y---
int bind2(int xy[2])
{
  return (xy[0]*N + xy[1]);
}
//---{s, t, u} --> s*N^2 + t*N + u---
int bind3(int stu[3])
{
  return (stu[0]*N*N + stu[1]*N + stu[2]);
}

//---m --> {x, y}---
void split2(int m, int xy[2])
{
  if(m > N*N){
    fprintf(stderr, "Error Argument 'm'.\n");
    exit(1);
  }
  xy[0] = m / N;
  xy[1] = m - xy[0]*N;
}
//---m --> {s, t, u}---
void split3(int m, int stu[3])
{
  if(m > N*N*N){
    fprintf(stderr, "Error Argument 'm'.\n");
    exit(1);
  }
  stu[0] = m / (N*N); 
  stu[1] = (m - stu[0]*N*N) / N;
  stu[2] = m - stu[0]*N*N - stu[1]*N;
}

何故このような関数が必要かというと、今回私がつくったRSA暗号プログラムはブロック長2で暗号化しています。つまり、2文字ずつ読み込んで暗号化しているのですが、RSA暗号で2文字を暗号化すると3文字になって出力されてきます。(←このページの下の方にある例を読むとわかると思います)したがって、

暗号化:2文字をbind2で計算してmする→mを暗号化「m^key1 mod key2」(このとき、(key1, key2) = 公開鍵(e, n)である)→split3でmを3文字に変換して出力

復号化:3文字をbind3で計算してmする→mを復号化「m^key1 mod key2」(このとき、(key1, key2) = 秘密鍵(d, n)である)→split2でmを2文字に変換して出力

このような処理をするためにbindやsplitがあるわけです。

次にpow_modによるaのb乗(mod n)の計算についてですが、普通はa^bを計算した後にnで割った余りを求めればいいわけですが、これは’b’の値が小さいときのみに有効な方法です。RSA暗号では、’b’に該当する’e’や’d’に大きな値(今回は3000までの素数しか使っていませんが、それでも6000くらい)が代入されるので時間がかかります。(単純に言えばb=6000の場合、5999回の乗算を必要とする)

これを高速に計算するにはバイナリ法(このWikipediaのページにはコードもあるので参考になります)と呼ばれる手法を用います。

| | コメント (0) | トラックバック (0)

2008/02/08

RSA暗号の公開鍵と秘密鍵を生成する

いよいよRSA暗号です。(最近忙しくて遅れました)今回はRSA暗号で用いる公開鍵と秘密鍵を生成するプログラムを紹介します。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

#define RANDOMIZE() srand(time(NULL))
#define RANDOM(x)   (rand()%(x))
#define N   28
#define MAX 3000
#define PRM 500

//---Prime Number Search---
int prime_search(int ptable[])
{
  int i, j, count=0;
  int p[MAX];
  for(i=0 ; i<MAX ; i++){
    p[i] = 0;
  }
  p[0] = 1;
  for(i=2 ; i<=MAX/2 ; i++){
    for(j=2 ; i*j<=MAX ; j++){
      if(p[i*j-1] == 0){
       p[i*j-1] = 1;
      }
    }
  }
  for(i=0 ; i<MAX ; i++){
    if(p[i] == 0){
      ptable[count] = i+1;
      count++;
    }
  }
  return count;
}

int gcd(int x, int y)
{
  while(y != 0) {
    int temp = y;
    y = x%y;
    x = temp;
  }
  return x;
}

int add_gcd(int a, int b)
{
  int r_pre = a, r = b, r_next;
  int x_pre = 1, x = 0, x_next;
  int y_pre = 0, y = 1, y_next;
  int ans_x, ans_y, ans_gcd, ans, q, k = 1;
  while((r_next = r_pre%r) != 0){
   q = r_pre / r;
   k++;
   x_next = q*x + x_pre;
   y_next = q*y + y_pre;
   r_pre = r;
   r = r_next;
   x_pre = x;
   x = x_next;
   y_pre = y;
   y = y_next;
  }
  ans_x = pow(-1, k) * x;
  ans_y = pow(-1, k+1) * y;
  ans_gcd = (ans_x * a)+(ans_y * b);
  if(ans_gcd == 1) ans = (ans_x + b)%b;
  else ans = 0;
  return ans;
}

int main()
{
  int e, d, p, q, n, euler;
  int count, ptable[PRM];
  
  RANDOMIZE();
  count = prime_search(ptable);
  
  do{
    p = ptable[RANDOM(count)];
    q = ptable[RANDOM(count)];
    n = p * q;
  }while(n > N*N*N || n < N*N);
  euler = (p - 1) * (q - 1);
  do{
    e = RANDOM(euler);
  }while(gcd(e, euler) != 1);
  d = add_gcd(e, euler);

  printf("(e, n) = (%d, %d)\n(d, n) = (%d, %d)\n",
         e, n, d, n);
  
  return 0;
}

今回は簡単のために3000までの素数を扱うことにします。鍵生成までのステップは次のようになります。

1.素数表からp、qを選ぶ(疑似乱数を使用)
2.n = p * q を計算し、N^2 < n < N^3 (今回はN=28)であることを確かめる(満たさない場合はp、qを選びなおす)
3.オイラー関数φ(n) = (p-1)(q-1)を計算する
4.オイラー関数φ(n)より小さい正の整数eを選ぶ(eはオイラー関数と互いに素である)
5.φ(n)を法としたeの逆元を求め(拡張ユークリッドを使用)、この逆元をdとする
6.(e, n)を公開鍵、(d, n)を秘密鍵とする

| | コメント (0) | トラックバック (0)

疑似乱数を発生させる(C言語)

C言語で疑似乱数を発生させるときには次のようにします。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define RANDOMIZE() srand(time(NULL))
#define RANDOM(x)   (rand()%(x))

int main()
{
  RANDOMIZE(); 
 printf("%d\n", RANDOM(1000));
  return 0;
}

この場合は0~999までの乱数を発生させることができます。疑似乱数の種にはtime(NULL)を与えます。(これにはtime.hが必要)

| | コメント (0) | トラックバック (0)

2008/02/07

意外と便利かも

コード内にコメントを書くとき、

/*=================*/

とか

//=================

みたいなのを書くときにEmacsだと

Tab M-20 = (Tab押してAlt押しながら20と入力したあと=を入力)

と入力すると’=’を20個表示してくれます。

| | コメント (0) | トラックバック (0)

2008/02/06

EricssonがLenovoにモバイルブロードバンドモジュールを提供

ITmediaによると、

スウェーデンのEricssonは2月4日、HSPAをベースとしたモバイルブロードバンドモジュールを、LenovoのノートPCに供給することで合意したと発表した。Lenovoは2008年から出荷開始する一部のThinkPadノートPCに、同モジュールを搭載する。

Ericssonは2007年2月にHSPAモジュールを発表。Lenovoは同社モジュールの採用を発表した初のPCメーカーとなる。同社のHSPAモジュールは、最大通信速度で下りで7.2Mbps、上りで2Mbpsを実現する。

だそうで。

ブロードバンドモジュール搭載のThinkPadが発表されてもたぶん買わないでしょうが、外付けモジュールが周辺機器として発表されたら買ってしまうかも・・・

最近はThinkPadの新Xシリーズ、X200やX300の話題でもちきりですが、このブロードバンドモジュールはX200、X300に搭載するんでしょうか・・・?

| | コメント (0) | トラックバック (0)

2008/02/05

PHP.JS

1週間ほど前に勃発したPHPに関する議論(たぶん、Rubyの作者まつもとゆきひろさんの発言が発端だと思う)も収束してきたように思います。

このPHP論争では肯定派否定派を問わず多くの意見を見ることができるので面白いですね。(どうやらPHPは定期的にネタにされるらしい)

私はPHPをやったことがないのでよく分かりませんが、PHPは豊富な関数が用意されていて大抵のことは用意された関数でできてしまうようです。

そんなPHPの関数をJavaScript上で使えるようにするのが「PHP.JS」です。

PHP.JSは一体どういう評価を受けるのでしょうか?

| | コメント (0) | トラックバック (0)

Windows Vista SP1 の開発完了

Windows Vista Service Pack 1(日本語版)の開発が2月4日に完了したようです。

SP1の配布は3月中旬から開始され、4月中旬から自動更新される予定だそうです。

---詳細記事:Internet Watch---

| | コメント (0) | トラックバック (0)

2008/02/04

もうすぐ・・・

期末テストが終わります。

酒が飲めます。

楽しみです。

早く配属先の研究室が決まればいいなぁ。

| | コメント (0) | トラックバック (0)

2008/02/03

VLC Media Player

アニメとかドラマとか連続モノをDVDで見るのは、ディスク交換が面倒・・・。という人は多いでしょう。私もそうです。

そんなときはPCに保存したISOファイルを仮想ドライブでマウントして・・・と考えますが、これも面倒っちゃ面倒です。

ISOファイルを直に再生できたら便利なのに・・・という人にはこの「VLC Media Player」がおススメです。

インストーラー、メニューを含め日本語に対応しているので、インストールや基本的な操作に問題はないと思います。

Windows用:DownLoad

Mac用:DownLoad

Linux用:DownLoad

| | コメント (0) | トラックバック (0)

2008/02/02

東大の論文のコストが高いらしい

1月31日のasahi.com記事「東大の論文、1本1845万円 国立大でコスト最大級」によると、

東京大学の論文の「生産性」が国立大学の中で最低レベルにあることが文部科学省科学技術政策研究所の調査でわかった。研究費を論文数で割った1本当たりの「生産費」を比べた。東大など旧7帝大はおしなべて生産費が高く、旧帝大偏重が指摘されてきた国の研究費配分のあり方に一石を投じそうだ。

だそうで。

論文1本にかかるコストが高いから「生産性」が低いってことらしいです。論文の内容、質に関係なく論文ってくくりは乱暴ではないでしょうか?(駄論文だって中にはあるはずなのに、短絡的な統計です)

東大に限らず、これら「コストの高い大学」は他の大学には不可能な大規模な研究をしているだろうし、その研究をするだけの頭脳も集まっているでしょう。それを、「コストの高い大学」から研究費を削って他大学に再分配したらどうなるんでしょうか?

私はある程度の偏重があるほうがいいと思いますが・・・。

論文のコスト削減よりも、大学設立の敷居が低くなったあとに湧いて出た「なんちゃって大学」を整理して補助金を削減するほうが先だと思いますね。(訳のわからない学部をつくり偏差値のハードルを下げたところで、まともな人材育成は不可能だと思う)

| | コメント (0) | トラックバック (0)

Microsoft「Yahoo!を買収したいです」

Microsoft:「Yahoo!を買収したいんやけど、446億ドルでどう?」

だそうです。もちろん返事は

Yahoo!:「・・・ちょっと待って」

どうやらMicrosoftはGoogleに対抗したいようです。

私が主に使うのはGoogleですが、Yahoo!も捨てがたいですね、(「プログラマーになりたい!」で検索すると当ブログが先頭にくるので^^;)

---詳細記事:ITmedia---

| | コメント (0) | トラックバック (0)

2008/02/01

エラトステネスの篩

エラトステネスの篩は素数判定法の代表的なアルゴリズムです。簡単に言えば、「1より大きい数の表から合成数を取り除き、残ったものを素数と判定する」ということです。

例えば、3000までの素数判定は次のようになります。

#include <stdio.h>
#define MAX 3000

int main(void)
{
  int i, j;
  int p[MAX];

  //---初期化---
  for(i=0 ; i<MAX ; i++) p[i] = 0;
  p[0] = 1;
  //---倍数を除外---
  for(i=2 ; i<=MAX/2 ; i++){
    for(j=2 ; i*j<=MAX ; j++){
      if(p[i*j-1] == 0)
        p[i*j-1] = 1;
    }
  }
  for(i=0 ; i<MAX ; i++){
    if(p[i] == 0)
      printf("%d\n", i+1);
  }

  return 0;
}

| | コメント (5) | トラックバック (0)

« 2008年1月 | トップページ | 2008年3月 »