ホーム » 2017 (ページ 4)
年別アーカイブ: 2017
B木の構造とデータベース
2分探索木の考え方を拡張したもので、B木がある。
B木の構造
B木では、データの増減で木の組換えの発生頻度が高い。そこで、1つのノード内に複数のデータを一定数覚える方法をとる。B木では、位数=Nに対し、最大2N個のデータd0..d2N-1と、2N+1本のポインタp0..p2Nから構成される。piの先には、di-1<x<di を満たすデータが入った B木のノードを配置する。ただし、データの充填率を下げないようにするため、データは最小でもN個、最大で2N個を保存する。
B木からデータの検索
データを探す場合は、ノード内のデータ diの中から探し、見つからない場合は、ポインタの先のデータを探す。位数がある程度大きい場合、ノード内の検索は2分探索法が使用できる。また、1つのノード内の検索が終われば、探索するデータ件数は、1/N〜1/2Nとなることから、指数的に対象件数が減っていく。よって、検索時間のオーダは、O(N) O(logN) 資料修正注意となる。 (さらに…)
高専ライブ:2017年11月12日(第550回)
- 秋の話
- Hiphopの話
- English Cafeの話
- サイエンス共和国 第15回「灯の話 蛍光灯編」
担当:木村(F3、MC)、坂田(F1、MC)、川﨑(4EI、MIX)、木下(4EI)、西(教員)
学科WordPressの設定変更
私は、CMSを昔から使っていたし、学科のWordPressサーバも設定していて活用しているけど、学科PRを目的としているWebサーバで、「最近の投稿」の欄は、私の投稿ばかり。
違和感あるし、”Widget Logic”というプラグインを入れて、左側のウィジェットメニューの「最近の投稿」には学科PRとなるような記事だけを表示するように設定を行った。これに加え右側のウィジェットメニューには、自分のカテゴリーの記事を参照している時だけ「自分の最近の投稿」が表示されるように設定する。
固定記事の「斉藤徹」の子ページの時にも、私の「最近の投稿」が表示されてほしいけど、is_page() 判定だと、子ページでは表示されないな…(x_x;
式の構文木と評価
2分木の応用ということで、2項演算子の構文木と、意思決定木の説明を行う。また、これらを用いてコンパイラを作るための知識を解説する。
2項演算と構文木
演算子を含む式が与えられたとして、それを保存する場合、演算式の2分木で扱うと都合が良い。
+ / \ 1 * / \ 2 3
演算子の木のノードで、末端は数値であることに注目し、右枝・左枝がNULLなら数値(data部にはその数値)、それ以外は演算子(data部には演算子の文字コード)として扱うとして…
(さらに…)
専攻科実験・コンパイラと関数電卓プログラム作成
- コンパイラの技術と関数電卓プログラム(1)
- 課題
- 複数桁の数字が使えること。
- 式中に空白が使えること。
- 何らかの演算子を追加すること。
- (例) %,単項演算子のマイナスなど
- 演算子が左結合か右結合か確認すること。
- オプション課題
- 変数が使えること。
(変数名は1文字のA-Zといったもので良い)
- 変数が使えること。
- レポート内容
- コンパイラ技術の概要、課題(1)の説明・ソース・動作検証、考察
- 課題
- コンパイラの技術と関数電卓プログラム(2)
- 課題
- 基本的に、lex+yaccで(1)と同様の課題完成を目指す。
- レポート内容
- lex,yaccの概要、課題(2)の説明・ソース・動作検証、考察
- 課題
高専ライブ:2017年11月5日(第549回)
- 校外学習の話
- 研修旅行の話
- 高専生に聞きたい5つのこと 第9回 プログラミングコンテスト
- 旅行のおすすめスポット
担当:田中(4B、MC)、越後(2E、MIX)、山野(F3)、中村(教員)
意志決定木と式を表す木
意志決定木
2分木の応用で最も単純な物として、意志決定木がある。
yes/no の答えを回答すると、最終的に「あなたの性格は✕✕です」と表示するようなヤツ。
struct Tree { char* q_a ; struct Tree* yes ; struct Tree* no ; } ; top \ あなたは勉強が好き? /yes \no ものづくりは好き? 人と話すのが好き? /yes \no /yes \no 技術者タイプ ◯◯◯ 営業タイプ ◯◯◯