ホームページ » の仕方 » コンピュータアルゴリズムとは何ですか、またそれらはどのように機能しますか?

    コンピュータアルゴリズムとは何ですか、またそれらはどのように機能しますか?

    あなたが数学やプログラミングに興味がなければ、「アルゴリズム」という単語はあなたにとってギリシャ語かもしれませんが、それはこの記事を読むためにあなたが使っているすべてのもののビルディングブロックの1つです。ここに彼らが何であるか、そして彼らがどのように働くかについての簡単な説明があります.

    免責事項:私は数学やコンピュータサイエンスの教師ではないので、私が使用する用語のすべてが技術的なわけではありません。それは私が人々のために平易な英語ですべてを説明しようとしているからです。それは言われて、関係しているある数学があり、そしてそれは避けられない。数学のオタクは、コメントの中で訂正するか、よりよく説明するのを遠慮しなくしてください、しかし、どうぞ、私たちの間で数学的に傾けられないためにそれを単純にしておいてください.

    による画像 イアン・ルオータラ

    アルゴリズムとは?

    「アルゴリズム」という言葉は、代数と似た語源を持っていますが、これはアラビア語の数学者al-Khwarizmi(単なるおもしろい話題)を指す点が異なります。私たちの間ではプログラマーではない人にとってのアルゴリズムは、入力Aを取り、出力Bを提供する一連の命令です。アルゴリズムにはさまざまな用途があります。数学では、データセット内の点から関数を計算するのに役立ちます。プログラミング自体での使用は別として、ファイル圧縮やデータ暗号化などで重要な役割を果たします。.

    命令の基本セット

    あなたの友人が食料品店であなたに会っていて、あなたを彼に導いているとしましょう。あなたは、「右側のドアから入ってくる」、「左側の魚のセクションを通り過ぎる」、「あなたが乳製品を見れば私を通り過ぎた」などのことを言うでしょう。アルゴリズムはそのように働きます。フローチャートを使用して、事前にわかっている、またはプロセス中に見つけた基準に基づいて指示を説明することができます。.

    ( "Icebreaking Routine" EDITというタイトルの画像:トリガーとフリーホイールの厚意による)

    スタートから、あなたは道を進むでしょう、そして何が起こるかに依存して、あなたは最終結果への「流れ」をたどります。フローチャートは、コンピュータによって使用される一連の命令をよりわかりやすく表すことができる視覚的なツールです。同様に、アルゴリズムはより数学ベースのモデルで同じことをするのに役立ちます.

    グラフ

    私たちが方向性を与えることができるさまざまな方法を説明するためにグラフを使ってみましょう.

    このグラフは、そのすべての点の間の接続として表すことができます。この画像を複製するために、私たちは他の人に一連の指示を与えることができます.

    方法1

    これを一連の点として表すことができます。情報は、graph = (x1、y1)、(x2、y2)、…、(xn、yn)の標準形式に従います。.

    グラフ= (0,0)、(3,0)、(3,3)、(5,5)、(7,10)、(8,7)、(9,4)、(10,1)

    各点を次々にプロットし、それらを前の点に接続するのはとても簡単です。ただし、1000ポイントまたは複数のセグメントがすべてどの方向にも移動するグラフを想像してください。そのリストはたくさんのデータを持っているでしょうね。そして、それぞれを一度に1つずつ接続しなければならないのは、面倒です。.

    方法2

    もう1つできることは、開始点とそれと次の点との間の線の傾きを指定し、標準形式のgraph = (開始点、[m 1、x 1、h 1 ]、…、[mn、xn、hn]。ここで、変数 'm'は線の傾きを表し、 'x'はカウントインする方向(xまたはy)を表し、 'h'は次のことを表します。それぞれの動きの後に点をプロットすることを忘れないでください.

    グラフ= (0,0)、[0、x、3]、[0、y、3]、[1、x、2]、[2.5、x、2]、[ - 3、x、1]、 [-3、x、1]、[-3、x、1]

    あなたは同じグラフになるでしょう。この式の最後の3つの用語は同じであることがわかります。そのため、何らかの方法で「3回繰り返す」と言うだけで、それを削減できます。あなたが変数 'R'が現れるのを見るときはいつでも、それは最後のことを繰り返すことを意味するとしましょう。できるよ:

    グラフ= (0,0)、[0、x、3]、[0、y、3]、[1、x、2]、[2.5、x、2]、[ - 3、x、1]、 [R = 2]

    個々の点が実際には問題にならず、グラフ自体だけが問題になる場合はどうなりますか?最後の3つのセクションをまとめてみましょう。

    グラフ= (0,0)、[0、x、3]、[0、y、3]、[1、x、2]、[2.5、x、2]、[ - 3、x、3]

    それは彼らが前にあった場所から物事を少し短縮します.

    方法3

    これを別の方法でやってみましょう.

    y = 0、0≦x≦3
    x = 0、0≦y≦3
    y = x、3≦x≦5
    y = 2.5x-7.5、5≦x≦7
    y = −3x + 29、7≦x≦8
    y = -3 x + 29、8≦x≦9
    y = −3x + 29、9≦x≦10

    ここで我々は純粋な代数用語でそれを持っています。繰り返しますが、ポイント自体は重要ではなく、グラフだけが問題になる場合は、最後の3つの項目を統合することができます。.

    y = 0、0≦x≦3
    x = 0、0≦y≦3
    y = x、3≦x≦5
    y = 2.5x-7.5、5≦x≦7
    y = −3x + 29、7≦x≦10

    今、あなたが選ぶ方法はあなたの能力によります。たぶん、あなたは数学とグラフ作成に優れているので、あなたは最後のオプションを選びます。たぶん、あなたはナビゲートが得意なので、あなたは2番目のオプションを選びます。しかし、コンピュータの分野では、さまざまな種類のタスクを実行しているため、コンピュータの機能はそれほど変わりません。したがって、アルゴリズムはそれらが実行するタスクに対して最適化されています。.

    注意すべきもう1つの重要な点は、各メソッドはキーに依存しているということです。あなたがそれらをどうするべきかを知らない限り、命令の各セットは役に立ちません。各点をプロットして点を結ぶことになっていることがわからない場合は、最初の点の集合は意味がありません。 2番目の方法で各変数の意味が分からない限り、暗号化の鍵と同じように、それらを適用する方法がわかりません。その鍵もアルゴリズムを使用する上で不可欠な部分であり、多くの場合、その鍵はコミュニティ内または「標準」を通じて見つけられます。

    ファイル圧縮

    .zipファイルをダウンロードすると、その中にあるものは何でも使用できるように内容が抽出されます。今日では、ほとんどのオペレーティングシステムは通常のフォルダのように.zipファイルに飛び込み、すべてをバックグラウンドで実行します。 10年以上前の私のWindows 95マシンでは、内部のファイル名以上のものを見ることができる前に、私はすべてを手動で抽出しなければなりませんでした。これは、.zipファイルとしてディスクに保存されたものが使用可能な形式ではなかったためです。引き出し式のソファを考えてください。あなたがベッドとしてそれを使用したいときは、クッションを取り外してそれを広げる必要があります。あなたがそれを必要としない、またはあなたがそれを輸送したいとき、あなたはそれを元に戻すことができます.

    圧縮アルゴリズムは、対象となるファイルの種類に合わせて調整および最適化されています。たとえば、オーディオフォーマットはそれぞれ異なる方法でデータを保存します。オーディオコーデックでデコードすると、元の波形と似たサウンドファイルになります。これらの違いについての詳細は、以前の記事「これらすべてのオーディオフォーマットの違いは何ですか?」をご覧ください。ロスレスオーディオフォーマットと.zipファイルには共通点が1つあります。どちらも、圧縮解除プロセスの後に、元のデータをそのままの形式で生成します。損失の多いオーディオコーデックは、他の方法でディスクスペースを節約します。たとえば、人間の耳には聞こえない周波数のトリミングや、細かい部分を取り除くために波形を部分的に滑らかにするなどです。結局のところ、MP3とCDのトラックの違いを実際に聞くことはできないかもしれませんが、前者には間違いなく情報の不足があります.

    データ暗号化

    データや通信回線を保護する際にもアルゴリズムが使用されます。使用するディスクスペースを減らすためにデータを格納するのではなく、他のプログラムでは検出されない方法で格納されます。誰かがあなたのハードドライブを盗んでそれをスキャンし始めたら、たとえそれへの転送場所がなくなっても、データ自体がまだそこにあるのであなたがファイルを削除してもデータを拾うことができます。データが暗号化されている場合、格納されているものが何であるかのようには見えません。断片化が時間の経過とともに蓄積したかのように、通常はランダムに見えます。データを保存して別の種類のファイルとして表示することもできます。イメージファイルや音楽ファイルは、疑いを引かずに非常に大きくなる可能性があるため、これに適しています。これはすべて、ある種の入力を受け取り、それを別の非常に特殊なタイプの出力に変換する数学的アルゴリズムを使用して行われます。暗号化のしくみの詳細については、HTG Explain:暗号化とは何か、またそれがどのように機能するのかを確認してください。?


    アルゴリズムは、コンピュータサイエンスにおいてさまざまな用途を提供する数学的ツールです。彼らは一貫した方法で始点と終点の間の経路を提供するように働き、それに従うための指示を提供します。私たちが強調したもの以上のことを知っていますか?コメントであなたの説明を共有する!