FC2ブログ

学習ロジックと実務ロジック

某相談箱で出た質問。

int f(int x) {
    if (x > 0) {return x * f(x-1);} else {return 1;}
}

この関数f と働き(すなわち,引数と戻り値の関係)が同じで再帰呼出(recursive call) を使わない関数g をC で定義せよ

階乗計算なのだろうが、学生にその動作を把握させるために出された問題と思われる。
なので、回答としては、forループで回すものを期待しているのだろう。

んでこれが汚れた大人になっちゃうと、
int g(int x) { return f(x); }

と書いちゃうのだよね。
というか、要件に従うとそうなっちゃう。既にあるものを再発明する理由がないし。

自分が汚れてるなと感じた瞬間。orz
スポンサーサイト

ステレオタイプ

ステレオタイプ

最初に覚えた言葉がステロタイプだったので、未だに馴染めないが、たぶんステレオタイプと呼ぶ方が一般的なのだろう。
最初に聞いた時は、『右と左で違う音がする』から日和見的な意味合いなのかと思ったが、なんのこたない、ステロタイプの事だった。

かつてのNIFTY-Serve時代、FSHISO(現代思想フォーラム?)では良く目にした言葉だが、基本的に文系人間用語なので、ここらあたりの業界で耳にすることはない。

Wikiあたりで見てみると、今で言う”都市伝説”に近いような感じで書かれているが、議論の中で使われる場合は、革新的でない使い古された(意味のない・あきあきした)事への批判表現としても使われたりする。なかなか難しい言葉で、この言葉を使う事自体がステレオタイプであったりもする。

でまた何で今ここでステレオタイプの話なのかというと、
あれ?なんでだっけかな・・・

んー、思い出したら続き書こう(^^;
(たぶんそのまま忘れちゃう)

Ubuntu 9.04 & 8.04.2

Ubuntu 8.04.1(ja)を使用していたところ、HDDがカッツンカッツンの音とともに旅立たれました。(合掌)

でぇ、ということで、最新版の Ubuntu 9.04 (ja) DeskTop i386をインストール。
8シリーズとは一味違うインストール画面だが、例によってサクサク簡単に終了。
アップデートも終了して、さて画面の解像度の変更を。
うちのモニタは古いCRTなので、インストール時は 'Unknown' 640x480となっているため、nvidiaのドライバを入れるとともに、ディスプレイの設定を。
$sudo displayconfig-gtk

するとなんと、Ubuntu9.04には、displayconfig-gtkが無い!
ありゃりゃ、前のをメモっておけば良かったのだが後悔先に立たず。
勘を頼りに/etc/X11/xorg.confをいぢくってみるも、設定がおかしいと再起動の繰り返し。

こりゃぁどうにもならんわいということで、8.04の最新である、8.04.2をダウンロードしてまたインストール。
またいつか9.04をインストールするかもしれないので、xorg.confを書いておくか。
--- xorg.conf
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp,jp"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
Option "XkbVariant" "106,"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
EndSection

Section "Device"
Identifier "Configured Video Device"
Boardname "nvidia"
Busid "PCI:1:0:0"
Driver "nvidia"
Screen 0
EndSection

Section "Monitor"
Identifier "Configured Monitor"
Vendorname "Generic CRT Display"
Modelname "Monitor 1280x1024"
Horizsync 31.5-81.0
Vertrefresh 50-75
modeline "640x480@60" 25.2 640 656 752 800 480 490 492 525 -vsync -hsync
modeline "640x480@72" 31.5 640 664 704 832 480 489 491 520 -vsync -hsync
modeline "640x480@75" 31.5 640 656 720 840 480 481 484 500 -vsync -hsync
modeline "800x600@56" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
modeline "800x600@72" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
modeline "800x600@75" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
modeline "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
modeline "832x624@75" 57.284 832 864 928 1152 624 625 628 667 -vsync -hsync
modeline "1024x768@75" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
modeline "1024x768@70" 75.0 1024 1048 1184 1328 768 771 777 806 -vsync -hsync
modeline "1024x768@60" 65.0 1024 1048 1184 1344 768 771 777 806 -vsync -hsync
modeline "1152x864@75" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
modeline "1280x1024@75" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
modeline "1280x960@60" 102.1 1280 1360 1496 1712 960 961 964 994 -hsync +vsync
modeline "1280x1024@60" 108.0 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
modeline "1280x960@75" 129.86 1280 1368 1504 1728 960 961 964 1002 -hsync +vsync
modeline "1400x1050@60" 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -hsync +vsync
modeline "1600x1200@65" 175.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
modeline "1600x1200@60" 162.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
Gamma 1.0
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
Defaultdepth 24
Option "AddARGBGLXVisuals" "True"
SubSection "Display"
Depth 24
Virtual 1024 768
Modes "1024x768@75" "1024x768@70"
"832x624@75" "1024x768@60" "800x600@60" "1152x864@75"
"800x600@75" "1280x1024@75" "800x600@72" "1280x960@60"
"800x600@56" "1280x1024@60" "640x480@75" "1280x960@75"
"640x480@72" "1400x1050@60" "640x480@60" "1600x1200@65"
"1600x1200@60"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
screen 0 "Default Screen" 0 0
EndSection
Section "Module"
Load "glx"
Load "v4l"
EndSection
Section "device" #
Identifier "device1"
Boardname "nvidia"
Busid "PCI:1:0:0"
Driver "nvidia"
Screen 1
EndSection
Section "screen" #
Identifier "screen1"
Device "device1"
Defaultdepth 24
Monitor "monitor1"
EndSection
Section "monitor" #
Identifier "monitor1"
Gamma 1.0
EndSection
Section "ServerFlags"
EndSection
---


とまぁなんとか画面まわりはOKだったんだが、
次は EclipseでEUCが使えない。(直接入力もだめ)
アプリケーションの追加と削除でEclipseをインストールするとどうやらそのままではダメなようだ。
Synapticパッケージマネージャで、言語パック(nls)関係をインストール。
アプリケーションの追加と削除で、Sun Java 6 Runtimeをインストール。
/etc/eclipse/java_home を編集して、Sun Java 6 を先頭行に持ってくる。
そうしてやっとEclipseを起動すると、なにやら一杯候補が出てくる。
eclipse server encode
めでたし、めでたし。

次はNAS(samba)の文字コード設定。
Windows用なので文字コードはSJISにしなきゃならない。
---/etc/samba/smb.conf
[global]
workgroup=WORKGROUP
dos charset = CP932
unix charset = UTF-8
---

ふぅ。

SMOKY

まぁ今日はこんな感じの一日で。


続ぷちまつり

まだやってやがる(^^;
無差別に技術をついばむ鳥
あちこちのコメント参照
これとか。

んー、この方にとってはどうも体裁ってのが最重要なんだろうなぁ。
フォローコメントが幾つか入ってるけども、どれも全部自演に見えちゃうし。
επιστημη氏が扇動して荒らしてる事になってるし。(ーー;

たぶんしばらくは人が寄り付かなくなるんだろうけれども・・・
うーん、自分で”壊れてる”認識ないだろうからヤバげだなぁ。

---
わたしゃεπιστημη信者ではない(そんな人間見たことない)けども、氏の実績や精力的な活動は凄いと思うし尊敬してる。
でもってMLなんかでたまに、前と同じ事聞いて突っ込まれてたりするのが世代的にうれしかったりもする。(^^;

unzipのパスワード

Ubuntu8.04(ja)のNautilus 2.22.5.1上で、パスワード保護されたzipファイルを展開する際、パスワードに'['などが含まれる場合に展開できない。

あれれ、なんだろなと思ったが、単に引数認識できていないようだったので、
アプリケーション~アクセサリ~端末
上で、
%>unzip -P '[password]' xxxx.zip
と、パスワードをシングルクォーテーションで括る事で展開できる。

zipでパスワード保護する時は、コンソールからの入力なのでそんな配慮は無用。
%>zip -e xxxx.zip xxxx.dat

###
2009/06/03 追記
展開の際もパスワードをコンソールから入力するのであれば、単に
%>unzip xxxx.zip
とすれば、password: と聞いてくるのでそのまま入力してOK。

プチまつり

なんや知らん間に小さな祭りがあった模様。
インドリ氏のブログ - 無差別に技術をついばむ鳥 -
少しは調べてから質問しろよ。な!

発端やら何やらをちゃんと把握してないのでなんなんだが、祭っちゃったのは、
ブログ上の間違い~修正の対応のまずさ

だったようだ。
裏返して言えば、それだけこのブログへの期待度が高かったということなんだろう。
コメントの中でも、”技術者としての資質への指摘”や、”信頼”なんて言葉が出てくる事からも、インドリ氏はこれらを真摯に受け止める必要があっただろうし、なんと有難い事なんだろうかとも思うし、うらやましさも。

まぁ、ここも含めて(一緒にすんな?m(__)m)ブログなんちうシステムはどうしてもえぇ加減になりがちなので、きちんとまとめるべき事項は、まとまったコンテンツとして置き場を用意するのがいいんでしょがね。

あ~、つっこまれるほど中身のあるものが書けるようになりたい・・・orz

模様替え

ちと一式移動していたため、デスクトップから久々のアクセス。

ということで、5月は仕事にあぶれ、ゴロゴロしたヒキニート状態。
まぁ、こんな時でないとできない事もあるわけだし、まぁいいかぁ・・・
(いや、良かぁないんだが)
プロフィール

f_yamaki

Author:f_yamaki

アクセスカウンタ
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク