• ベストアンサー

アルゴリズムの説明について

アルゴリズムを新人に教育するようにいわれ困っています。 下記の様な説明でよいか判断が付きません。又、DBの更新はフローチャート上表現できないのでどうしたらよいか悩んでいます。 宜しくお願いします。 アルゴリズムとはある問題を解決する手順。 プログラムを作成するときのロジックを構築しますが、 それらの処理手順すべてがアルゴリズムというわけです。 プログラムはアルゴリズムを表記するということになります。

質問者が選んだベストアンサー

  • ベストアンサー
noname#87186
noname#87186
回答No.2

用語の説明としては問題ありませんが、具体例を示したほうがいいと思います。 たとえばデータのソートアルゴリズムの違い。 http://ja.wikipedia.org/wiki で 「ソート」を参照するとそれぞれのアルゴリズムによる違いがまとめてあります。

KENT469
質問者

お礼

ご回答ありがとうございました。 お礼の返事が遅れまして申し訳ございません。 アルゴリズムについて、それぞれの機能のアルゴリズムを説明するのも 大変かと思い、プログラムのロジックを当面アルゴリズムとして指導するつもりでいましたが、ソートのアルゴリズム等も説明したいと考えて います。本来のアルゴリズムをなんとか解説出来る様、頑張ってみます。本当にありがとうございました。

その他の回答 (1)

回答No.1

もうちょっと具体例がほしいですね。 説明そのものはそれで正しいとは思いますが、たぶん理解はされないでしょう。 DBの更新は何を説明したいのですか? 説明したいことを絵にして説明すればよいのであり、フローチャートで説明する必要はないと思います。そもそも新人がフローチャートをすんなり理解できるかどうかも怪しいものです。

KENT469
質問者

お礼

ご回答ありがとうございました。 なにか、自分でもしっくりこなくて悩んでいました。 もう一度考え直してみます。

関連するQ&A

  • アルゴリズムとは、フローチャート作成、VBA

    ITの勉強をしている者です。大変はずかしいのですがアルゴリズムが全く理解できません。 作業手順(フローチャート)を作成するのにも全くイメージが思い浮かびません。 それをVBAでプログラムということになるのですがなにがなんやらさっぱりです。 ある人からは、あなたには無理ですあきらめなさいと言われる始末です。 正直くやしいです。なんとか克服しようと勉強してはみるのですが、まったく成果があがりません。 覚えるきっかけみたいなのがあれば良いのですが今のところなんともなりません。 効率のいい勉強の方法やコツみたいなのがあれば是非知りたいのです。 なんとも情けないですが詳しい方おしえてください。

  • 初級シスアド アルゴリズム、フローチャートについての質問

    初級シスアドの問題で、アルゴリズムとフローチャートのところがよくわからないんですけど。 問題のひし形の(判断)の中に“a:b”というのは何を意味しているのでしょうか?四角の中の(処理)“ac→c”というのは?(aとcの間に点のようなものが入っています。) また、このようなことを易しく解説してくれているサイトなどはないでしょうか? 2進数とか16進数とかもさっぱりわかりません。 やはり、基本的に数学の知識がないとだめなのでしょうか? 独学は無理なのでしょうか?

  • データを抽出して更新するアルゴリズムについて

    基本情報の勉強をすこしかじっているのですが、ソートや検索といったものの基本的なアルゴリズムはならったのですが、いまいち応用が出来ません。例えば、エクセルなどで、値の書き換えの必要となるあるデータの集まりを抽出し、一度必要な更新(データの置換)を行ったものはもう更新の対象としない、あるいは、元のデータの群れに戻すというような場合、どのような処理手順を書くのが理想的でしょうか?

  • C#でデータベースとコネクションをしたい

    C#.NETのプログラムでDB(MS ACCESS)にデータの追加や更新をしたいのですが、DBへのコネクションのロジックがわかりません。 どなたかサンプルのソースを教えてもらえますか?

  • ■このプログラムはインストールしてもいいのでしょうか(Windows

    ■このプログラムはインストールしてもいいのでしょうか(Windows update) Windows updateの重要な更新プログラムが「2個」ありますと表記されています。でも、どちらにもチェックが入っていません。 その更新プログラムとは、下記のものです。 (1)KB2416473 (2)KB2416470 重要な更新なのにチェックが入っていないのは、任意の判断に任せるということだと思うのですが、あまり知識がないもので、インストールしてもよいものかどうか迷っています。 パソコンのosは、vista sp2です。 よろしくお願い致します。

  • モジュールフローとは?

    プログラミング超初心者です。 社内研修の事前課題で プログラムの仕様が日本語で箇条書きで書いてあり そのモジュールフローを書けという事前課題があります。 モジュールフローというのは、フローチャートのことですか? それとも、処理ロジックを下記のように書くのでしょうか?   Sub ○○処理()    Dim i As Integer     IF 条件1のとき     ~   End Sub 「一応、フォーマットは問いません。」とは記載されていましたが 一般的に、モジュールフローを書けといわれた場合 どのようなものを書くものなんですか? 初歩的な質問で申し訳ありません。 よろしくお願いします。

  • String配列を扱うアルゴリズムについて

    よりパフォーマンスの良いアルゴリズムが、 ございましたらご教示下さい。 数レコード分のDBテーブルデータが格納されたString[][]型が存在するとします。 配列の要素は、String[行(フィールド)][列(カラム)]です。 ここで、全レコード中の列ごとの最大文字列長を int[]型に取得したいと思います。 そうした場合、自作した下記の処理よりも、 よいパフォーマンスを得られるアルゴリズムがございましたら、 ご教示願いたいと思います。 ※処理前提条件 ●String[][]型変数に、過不足無くテーブルデータが格納済みであるとします。 ●配列の第一(行)・第二(列)要素の最大値は取得済みであるとします。 ////////////// // 変数定義 // ////////////// String[][] tableData; ← テーブルデータ格納済み(過不足はありません) int 行数 = 全行数(取得済み); int 列数 = 全列数(取得済み); //列毎の最長文字列値を格納する。 int[] maxLen = new int[列数]; ////////// // 処理 // ////////// //列の個数分、処理を繰り返す for(int i = 0; i < 列数; i++) {   //行の個数分、処理を繰り返す   for(int j = 0; j < 行数; j++) {     //NULLを回避する     if(tableData[i][j] != null) {       //int配列に格納済みの数値より大きければ、改めて格納する       if(maxLen[i] < tableData[i][j].length()) {         maxLen[i] = tableData[i][j].length();       }     }   } } 以上です、どなかお知恵をお貸し頂けませんか。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 対話型遺伝的アルゴリズムについて。

    対話型遺伝的アルゴリズムについて。 現在,IGAを用いたアプリケーションを構築するための勉強をしている者です。 進化計算処理の一つ,「交叉」について2つ疑問があります。 <質問1>=============================== 例えば, 「ユーザに好きな色を評価してもらいながら最適な色(好みの色)を作り出してもらう」 「パラメータはRGB3原色の3つ」 とするとき,評価及び進化計算の過程でRGBの値が 親1 R=63 G=127 B=255 親2 R=50 G=240 B=0 の親があったとします. これを以下のように,10進数のまま交叉するというのではだめなのでしょうか。 親1 R=63 G=127 <交叉位置> B=255 親2 R=50 G=240 <交叉位置> B=0          ↓ 子1 R=63 G=127 B=0 子2 R=50 G=240 B=255 もちろんこれだと2進数化(コード化)した時とは違い,各原色はそっくりそのまま入れ換えることになります。 ただ,それでも最適解へ収束するということには変わらないと思います。 従来の2進数にコード化して行う明確な理由を教えて頂けないでしょうか。 <質問2>=============================== 上記のアルゴリズムであれば, 整数である「表現型」のままの交叉ということになるのでしょうか。 もしそうであれば,ここは従来の交叉は使えず「実数値GA」なるものを使わなければいけないのでしょうか。 ==================================== 以上2点です。 どちらか1つの回答でも結構です。 どうぞ,よろしくお願いします。

  • 自動で仮説を立てるような学習アルゴリズム

    疑似的な「創造性」「芸術的な感性」を生み出すような方法って イメージとしてはどういう風にアルゴリズムを組めば出来るのでしょうか 言語としてはC/C++(ネイティブ)を考えています。 ある程度のアイデアがあって その概念的な部分は既にコードに打ち込まれているなら あとは場数を踏んで点数計算(評価関数のパラメータの自動最適化とか)でいけると思うのですが 人間が思いついた「物の見方」だけで評価するプログラムでは 人間を遥かに超える処理能力・観察力は得られても 「思いもよらなかったそれ以上の概念・それ以外の概念」では計算できないと思うのです。 膨大なパラメータから、乱数等を用いて 「評価の方法」自体について自動で仮説を好きなだけ立て それを検証していく、という方法が可能ならそれを作ってみたいです。 (「有力な説」はより優先して計算する採用率を高めるとしておきつつ たまに全く違う角度からも考えるような感じに出来れば良いです。(遺伝的アルゴリズムっぽく?)) また、仮説を検証するために点数計算可能な種はあるとします。 膨大な入力パラメータとそれに対する処理毎に その「入力」と「結果」に対して与えられる総合での点数(の比率・あるいは総合評価の増減値) が膨大なパターン数得られるという状況で しかしながらボードゲームのように 勝ち負けがはっきりするものではなく 点数は人間が感性で判断して与える 「その処理をかけただけでは分からず、かけたうえで人間が判定する」 「それを膨大な回数行える」 という制約は呑むとして 人工知能工学的にはそういうことは可能でしょうか? 可能な場合は コード量は膨大になる可能性が高いと思うので どういうイメージで作るといいかの触りとかだけでも教えていただけると嬉しいです。

  • 空メール処理について

    メールからDBへbashを使い画像の投稿・更新・削除等できるプログラムは出来たんですが、空メール処理が出来ません。

    • ベストアンサー
    • Perl