人間の支援

人間の操作とコンフリクト(衝突)する場合は、人間の操作を優先するべきだ。

人間の操作をオーバーライドして受け付けず無視するなんてありえない。

なぜなら操縦士はきちんとした訓練を受けていて、航空機を安全に操縦するというのは大前提であるからだ。

 

今のテクノロジーでは、機械は人間の支援に留まるべきで、まだ人間の代わりになるのは早すぎる。機械にクリティカルなシステムを任せるには危険すぎるのだ。機械には状況に応じた臨機応変な判断はできない。将来はできるのかもしれないが、まだ「SF」の範囲を出ていない。昨今、「AI」等が流行りはじめているが、「機械に判断を任せる危うさ」は十分認識すべきだと思う。機械は決して万能ではない。

 

飛行機に乗る機会はあまりないですが、自分はエアバスは遠慮したいですね。

連続する整数の「7」の個数を数える(解説)

ちょっとコードがひどかったので書き直しましたw
手続き seven だけ再掲します。

(define (seven num)
  (define (iter n q r s k cnt)
    (if (= n 0)
	cnt
	(iter (quotient n 10)
	      (quotient q 10)
	      (remainder q 10)
	      (+ s (* r (expt 10 k)))
	      (+ k 1)
	      (cond ((= r 7) (+ cnt (count-seven (* r (expt 10 k))) 1 s))
                    ((> r 7) (+ cnt (count-seven (* r (expt 10 k))) (expt 10 k)))
	            (else (+ cnt (count-seven (* r (expt 10 k)))))))))
  (iter num (quotient num 10) (remainder num 10) 0 0 0))

ロジックの簡単な解説。

桁毎に処理するのですが、桁以下が 0 の時の切り番の 7 の数を数えるのが基本です。
たとえば、6543 で 1000 の位の桁の処理は、6000 までに 7 がいくつ現れるか計算します。
(count-seven 手続き)

以下特殊処理です。

・桁の数字が 7 のとき

下位の桁の数を足します。プラス 1 は補正です。
例えば、7543 で 7000 の桁を計算するときは、7000 までに 7 が現れる個数に 543 を足します。
さらに、7000 で 7 が 1 つ現れるので +1 して補正します。

・桁が 7 より大きいとき

例えば 8543 のときは、8000 までに 7 が現れる個数を求めますが 7000 番台分の 7 の出現個数を計算して足します。

・桁が 7 より小さいとき

例えば 5543 のときは、5000 までに 7 が現れる個数を普通に求めます。


という処理を下位の桁から上位の桁へ再帰的に行っています。
n が 0 になったら cnt を返して終了します。
プログラムの計算量は、数字の桁数に対し O(N) です。

permission denied で make が失敗するとき

結論から書こう。

Cygwin Terminal を管理者権限で実行して、make すべし!

本日の教訓。

無用なトラブルを避けるためにも、
インストール時は、管理者権限で起動した  Cygwin Terminal を使う事。

忘れないように>自分!

はい・・・(汗

REALFORCE R2 PFU LIMITED EDTION レビュー

しばらく使用したのでレビューを書いてみますよ。

全キー45g荷重

今までずっと10年以上変荷重を使っていたので、ちょっと違和感があります。最初のうちは誰でも「aaaaaaaaaaaaaaaaa」とかなりますが、慣れれば問題ありません。ただ、ゲーム(特にFPS)等では薬指で「A」キーを押すので、30gだと間違えて押しやすいです。普通にホームポジションに手を置いて打鍵する分には問題ないのですが。変荷重にもデメリットがありますね。

静音

自分はノーマルのちょっとカチャカチャいう方が好きですかね。キーは強く押さないのでノーマルでも結構静かだと思います。静音タイプはあまりにも静かすぎて、打鍵音はあまり好きじゃないですね。

APC

自分は変荷重みたく小指で打鍵するキーは、1.5mm に、その他は 2.2mm にしてみましたが、ぶっちゃけ違いがよくわかりません(爆

スペーサー

未使用です。
今度の休日にでも入れてみるかな。キートップ外すの面倒くさいんですよw 100個以上もあるんですよw たぶん未使用のほうが馴染む気がしますけども。

テンキーレス

予想以上にテンキーのエンターキーを押す人だったのだとわかりました。職場で使う場合は、やっぱりテンキー有りモデルがいいかなー。

パームレスト

予約特典の木製パームレストはいい感じですよ。これ普通に買うと 3200円ぐらいするかも。高っw 滑り止めシールが付属してましたが、未使用なので固定できず使いにくいです。(シール貼れ

まとめ

・やっぱり変荷重がいいかな。
・テンキーあったほうがいいかな。
・静音じゃ無いほうがいいかな。
APCは無くてもいいかな。
・スペーサーはたぶんいらないかな。

(・・・ってダメじゃねコレ?www オーバースペック過ぎて自分に合ってないwwwww)

そういえば英語配列のフルキーボードが 10月頃発売になるみたいです。変荷重の標準モデル買おうかなー。

連続する整数の「7」の個数を数える

久々のプログラミングネタw!
暇だったので解いてみました。

まずは、愚直なコードで傾向と対策を考えますw

#;(define (test limit)
  (define (iter n c)
    (if (> n limit)
	c
	(iter (+ n 1)
	      (+ c (length (filter (lambda (x) (= x 55)) (map x->integer (string->list (number->string n)))))))))
  (iter 1 0))

これは遅いwww

改良しました。
ポイントは計算で求めて計算量を O(N) にする事です。

(define nil '())

(define (number->list num)
  (define (iter n lst)
    (if (= n 0)
	lst
	(iter (quotient n 10) (cons (remainder n 10) lst))))
  (iter num nil))

(define (count-seven n)
  (let ((zk (- (length (number->list n)) 1)))
    (if (< zk 1)
	0
	(* (quotient n (expt 10 zk)) zk (expt 10 (- zk 1))))))

(define (seven num)
  (define (iter n q r s k cnt)
    (if (= n 0)
	cnt
	(cond ((= r 7)
	       (iter (quotient n 10)
		     (quotient q 10)
		     (remainder q 10)
		     (+ s (* r (expt 10 k)))
		     (+ k 1)
		     (+ cnt (count-seven (* r (expt 10 k))) 1 s)))
	      ((< r 7)
	       (iter (quotient n 10)
		     (quotient q 10)
		     (remainder q 10)
		     (+ s (* r (expt 10 k)))
		     (+ k 1)
		     (+ cnt (count-seven (* r (expt 10 k))))))
	      (else
	       (iter (quotient n 10)
		     (quotient q 10)
		     (remainder q 10)
		     (+ s (* r (expt 10 k)))
		     (+ k 1)
		     (+ cnt (count-seven (* r (expt 10 k))) (expt 10 k)))))))
  (iter num (quotient num 10) (remainder num 10) 0 0 0))

ロジックの解説は暇な時にでも書きます。たぶん。

実行結果

gosh> (time (map seven '(99 77777 23678947 732465890 1912478368)))
;(time (map seven '(99 77777 23678947 732465890 1912478368)))
; real   0.000
; user   0.000
; sys    0.000
(20 38890 16140633 614891670 1728439836)

1秒かかってないので合格です。

計算量は O(N) ですから、

gosh> (time (seven 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890))
;(time (seven 1234567890123456789012345678901234567890123456789012345678 ...
; real   0.218
; user   0.218
; sys    0.000
97379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972698737997269873799726987379972768

巨大な数でも楽々計算できます。
この答えで合ってるのか不明ですが。たぶん合ってるのだと思いますw

リネ2クラシックのおはなし

最近遊び始めました。懐かしいの一言です。

キャラはもちろんダークエルフのウィザードです。

もうウィザード楽しすぎでしょ!

 

レベル 20 でとある(スパルタw)クランに入りました。

運よく仲間にも恵まれ、見ず知らずの入りたての新人に、

いろいろ装備とかアデナとか祝SPSとか簡単に貸してくれちゃっていいのかな?

と思いつつw、人の好意は拒否しない性質なのでw、

いろんな物をクランの先輩から拝借させてもらってます。

 

いろいろな MMO を転々としましたが、

リネ2のクランってなんていうか、結束力がすごいんですよ。

仲間をとても大切にするんです。そんな楽しいクラン生活をおくっております。

 

いろいろなレベル帯のレイドも開催されているし、

ギランの街には露天を開く人がたくさん居るし、

以外と活気があります。安心しましたw

 

今、レベル 31 です。

レベルが高くなって余裕ができたら、新しく入ってきた人に

いろんな物を貸してあげられる、そんな人に私もなりたいw

いつかそんな日が来る事を夢見つつw、

これからも長く楽しめそうな予感です。