ホーム » 2017 (ページ 2)
年別アーカイブ: 2017
福井国体カウントダウンボード
鯖江市からの依頼により、電子情報工学科3年の学生さんたちが協力して、 福井国体のカウントダウンボードを作成しました。
このボードは、鯖江駅にて展示されています。
ハッシュ法
2分木なども終わって、検索処理のさらなる高速化として、 ハッシュ法を説明する。
オープンアドレス法
電話番号が記録されているのかどうかを探す処理を考えると、 最も単純な方法は、電話番号を配列の添字にする方法となる。
int array[ 1000000 ] ; // 局番2桁+4桁 void entry( int tel ) { array[ tel ] = tel ; } int search( int tel ) { if ( array[ tel ] == 0 ) // O(1) のアルゴリズム return 0 ; else return 1 ; }
しかしこの方法では、0778621111 といった番号も考えると、 巨大なメモリを必要として、非現実的となる。 この際の解決法がハッシュ法で、データ件数が少なければ、 例えば電話番号の末尾2桁がおなじデータの発生する確率は低い。 もし、電話番号末尾2桁が同じでも、その番号の次の場所に保存するなどすればよい。
#define SIZE 100 // ハッシュ表のサイズ int hash[ SIZE ] ; // ハッシュ表 int hash_func( int phone ) { // hash_func:ハッシュ関数 return phone % SIZE ; } void entry( int phone ) { int idx = hash_func( phone ) ; // idx:ハッシュ値 while( hash[ idx ] != 0 ) // データ件数100で無限ループだけど... idx = (idx + 1) % SIZE ; hash[ idx ] = phone ; } int search( int phone ) { int idx = hash_func( phone ) ; while( hash[ idx ] != 0 ) { if ( hash[ idx ] == phone ) return 1 ; idx = (idx + 1) % SIZE ; } return 0 ; }
チェイン法
オープンアドレス法では、次の空き場所を探して保存するが、 表サイズよりもデータ件数を多く保存することはできない。
表が埋まって、同じハッシュ値のデータがでてきたら、同じハッシュ値どうしを リスト構造で保存する方法はチェイン法と呼ばれる。
struct List *hash[ SIZE ] ; // ポインタはNULLで全て初期化 void entry( int phone ) { int idx = hash_func( phone ) ; hash[ idx ] = cons( phone , hash[ idx ] ) ; } int search( int phone ) { int idx = hash_func( phone ) ; struct List* p ; for( p = hash[ idx ] ; p != NULL ; p = p->next ) { if ( p->data == phone ) return 1 ; } return 0 ; }
高専ライブ:2017年12月10日(第554回)
- 後期中間試験の話
- サイエンス共和国 第17回 「灯の話 LED編パート2」
- 冬の話
- もし大金を手に入れたら・・・
担当:越後(2E,MC)、西島(3EI,MIX)、川﨑(4EI)、木村(F3)、西(教員)
APIEMS2017に参加
APIEMS2017で発表
12月4日~12月6日にインドネシアのジョグジャカルタで開催されたAPIEMS(アジア太平洋工業技術経営学会)にて、電子情報工学科の学生・教員(専攻科山田くん,5年三田くん,田中さん,北本くん,高島くん,野村くん,教員小越先生,西先生)が、研究内容や成果を発表してきました。
慣れない英語での発表でもあり、事前に英語科の先生に原稿の添削や発表練習にもご協力いただき、ありがとうございました。
ガジャマダ大学で研究交流
発表を終えた翌日には、インドネシアの国立大学ガジャマダ大学の近い研究分野の先生の所を訪問し、ガジャマダ大学・福井高専の相互の紹介に加え、学生同士が研究内容の情報交換などを行いました。
IchigoJamをAPIEMSやガジャマダ大で紹介
学会やガジャマダ大学では、本学科OBの福野氏が開発したIchigoJamなどをデモも行いました。
ボロブドゥブール遺跡見学
ガジャマダ大学の訪問の後、飛行機のフライトまでの最後の時間には、世界遺産となっているボロブドゥール遺跡を見学しました。
高専ライブ:2017年12月3日(第553回)
- 研修旅行の話
- 高専生に聞きたい5つのこと 第11回 ロボコン出場者
担当:水島(3C,MC),西島(3EI,MIX)、中島(3C)、中村(教員)
ETロボコン
青山研究室では、卒業研究でETロボコンにチャレンジしています。 12月2日には、金沢工業大学にて開催されたETロボコンのリベンジ大会に参加しました。
情報構造論はテスト返却
情報構造論は、来週不在となるので、授業時間を振り替えてテスト返却を行った。
データベースのテスト返却
後期中間試験が終わり、あわてて採点していたデータベースの返却。
来週が不在となるので、課題を出すなら、12/1 17:00 までとアナウンス。
データベースの設計
返却を終え、残り時間は後半の説明。
データベース設計には、概念設計、論理設計、物理設計に分けられる。
概念設計では、データベースによって管理の対象とするものを現実の世界から抽出して設計を行う。一般的にはER図などを描きながら設計を行う。論理設計では、どのようなデータモデルで作成するのかを設計。通常であれば、リレーショナルモデルで概念設計に沿って設計を行う。物理設計では、データベースの効率を考えながら設計を行い、インデックスをどう作成するかなどを設計する。
ER図とは、データの対象で具体的な物や人といった実体(Entity)と、その実体の間の関連(Relation)であらわされるものを、図にして表現したもの。ER図では、実体を長方形、関連をひし形、属性を楕円であらわす。属性のなかでキーとなるものには、下線をつけて表す。ER図の表現には、色々な方式があるが、Peter Chen記法で説明を行う。
このような、プログラム開発での考えを表すための図には、UML(Uniformed Modeling Language)というものもある。ER図は、データ構造を表現するための構造図と、処理を表現する振る舞い図がある。
iMacの時計のずれ
自室のiMacの時計が5分もずれてた。原因は、ntp サーバの先頭に、故障で運用を止めたサーバが書いてあった。そりゃずれるわな。