個人財務 Javaプログラミングの課題:シンプルなチューリングマシンの作成 - ダミー

Javaプログラミングの課題:シンプルなチューリングマシンの作成 - ダミー

ビデオ: 朝の3分モデリング講座 - ER図編(1) 論理名/物理名の設定やSQL出力 2024

ビデオ: 朝の3分モデリング講座 - ER図編(1) 論理名/物理名の設定やSQL出力 2024
Anonim

1936年に、 チューリングマシン と呼ばれる簡単なタイプの計算機です。チューリングは実際にはチューリングマシンを作りませんでした。その代わりに、計算可能性の研究、すなわち複雑な問題が計算ステップによって解決できるかどうか、計算可能な問題を解くことができる機械を考案できるかどうかを調べるための架空の装置でした。 (チューリングマシンの歴史やアプリケーションについて知りたい場合は、インターネット上で多くの記事を見つけることができます。検索プロバイダを使用して「チューリングマシン」を検索してください)。

<! - 1 - >

チューリングマシンの操作は簡単です。これは、基本的な概念をいくつか体現しています。

  1. チューリングマシンの心臓部は、情報が書き込めるセルに分割された無限に長いテープです。もちろん、物理的な装置は無限のセル数を有することはできない。しかし、チューリングマシンの理論では、テープは無限です。各セルに書き込むことができる情報は、0または1などの単一の記号に限定される。しかし、情報は、連続したセルの結合された値によって表すことができる。

    <!たとえば、シンボル1の連続した出現とそれに続く0によって数値を表現することができます。したがって、1110は値1を表します。 111111011110は値6と4を表します(6つの1の後に0が続き、4つの1に続けて別の0が続きます)。

  2. チューリングマシンには、テープのセルの1つ(および1つだけ)に常に位置する

    読み書きヘッド

    が含まれています。

  3. <! - 3 - > この読み書きヘッドは、セルに含まれているシンボルを読み取ることができます。シンボルを消去し、必要に応じて新しいシンボルをその場所に書き込むこともできます。読み書きヘッドが位置するセルは、 カレントセル

    または

    ヘッドセル と呼ばれる。テープは、一度に1つのセルだけ読み書きヘッドの下に左右に移動できるように電動化されている。 マシンの状態は で、アルファベットの文字などの記号で表されます。 他のコンピュータと同様に、チューリングマシンもプログラミングできます。しかし、チューリングマシン用のプログラムは、リモートからJavaプログラムに似ていません。

  4. 代わりに、Turing Machineプログラムは、マシンがどのようなアクションを取るべきかを決定するために評価される単なるルールのセットです。各ルールは、現在のセルが所与のシンボルを含み、マシンが所与の状態にあるときにとるアクションを識別する。たとえば、現在のセルに1が含まれ、マシンの状態が「a」である場合、ルールは何をするかを指示することがあります。

  5. 各ルールでは、次の3つのアクションを指定できます。 現在のセルを消去するか、セルに新しい値を書き込む。 テープを1つ左または左に移動します。

マシンの状態を新しい状態に変更します。

たとえば、現在のセルに1が含まれ、マシンの状態が「a」の場合、Turing Machineは現在のセルに0を書き込んで、1つのセルを右に進め、マシンの状態は「b。 "

プログラムに加えて、チューリングマシンのテープは初期値を持つことができます。

  • それはそうです。チューリングマシンの定義全体です。その単純さにもかかわらず、Turing Machineは2 + 2から火星までのロケットの軌道まで何でも計算できます。

  • この課題に対して、非常に単純なチューリングマシンを作成する必要があります。問題を簡略化するために、このバージョンのチューリングマシンで以下の制限を受け入れてください。

  • テープは無限である必要はありません。

Javaの機能(配列、文字列、またはコレクション)を使用して、テープを表すことができます。

(テープは無限である必要はありませんが、現在のセルから左右に簡単に移動できなければならないことに注意してください)配列を使用する場合は、要素の現在のセルで開始しないでください0はそこから左に移動できないためです)。

セルは空でも、任意の文字または数字を含むこともできます。

空のセルは、アンダースコア文字で表されます。

  • 状態には任意の英数字を使用できます。 チューリングマシンのプログラムは、テキストファイルから読み込まれます。

    このテキストファイルには、1行に1つのルールが含まれています。各ルールには、次のように5つの文字がスペースで区切られ、各ルールの詳細が示されます。

  • 現在のセル: 現在のセルに一致する値。

  • 現在の状態:

  • 現在のマシン状態に一致する値。 新しいセル:

    • 新しいセルに書き込む値。セルを消去する場合は_、セルを変更しない場合は*を使用します。 移動:

    • テープを左右に動かすにはLまたはRを押します。プログラムを停止するにはHを押します。テープを動かさない他の文字。 新しい状態:

    • マシン状態の新しい値。例えば、現在のセルが1であり、状態が「a」である場合、現在のセルは0に設定され、テープは1つのセルを左に移動し、状態は「0」に設定されるべきであり、 b: " 1 a 0 L b

    • テキストファイルの最初の行には、テープの初期値を表す文字列を含める必要があります。 テキストファイルの2行目には、初期状態が含まれている必要があります。

    • 次の図は、サンプルソリューションのユーザーインターフェイスを示していますが、このプロジェクトで使用するユーザーインターフェイスのデザインは自由に使用できます。 潜在的なチューリングマシンインターフェース。

  • インタフェースを作成する際の考慮事項は次のとおりです。

    値と現在のセル:
    
    • テープの値を表示し、現在のセルを強調表示する必要があります。

    • ツールと表示:

プログラムの実行を開始、停止、または再開する機能も提供し、プログラムの各ステップの結果を表示する必要があります。

プログラムの実行:

ロードされたプログラムを最初から最後まで実行する方法と、各ステップを実行するためにボタンをクリックしてプログラムをシングルステップ実行する方法を提供することができますプログラムの

  • プログラムのロード :ユーザーがテキストファイルからTuring Machineプログラムをロードし、プログラムを再実行するためにマシンをリセットできるようにするボタンを用意する必要があります。

  • 無限のテープを実装するためのヒントを次に示します。テープの値を保持するには、現在のセルに格納されている1文字の文字列、現在のセルの左にある文字の2文字目、現在のセルの右にある文字。次に、連結および部分文字列操作の適切な組み合わせを使用して、現在のセルを左または右に簡単に移動することができます。 この挑戦の解決策は、

  • ダミー用Javaオールインワン、 4th Edition製品ページの[ダウンロード]タブで見つけることができます。

  • 幸運!

Javaプログラミングの課題:シンプルなチューリングマシンの作成 - ダミー

エディタの選択

Drupalフォーラムの有効化 - ダミー

Drupalフォーラムの有効化 - ダミー

フォーラムはユーザーコミュニティを作成するのに最適です。人々は他者からの援助を得ることができ、あなたのコンテンツに関するフィードバックを提供し、単純に社会化することができます。あなたのDrupalフォーラムは、あなたが望むようにしっかりとまたはゆるやかに制御することができます。フォーラムで許可されているカテゴリを制御できます。フォーラムの例を見るには、Drupal Forumを参照してください。 ...

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ウェブホスティング会社は、あなたがDrupalをインストールし、あなたのサイトをウェブ上に見えるようにするWebサーバー。一部の企業では、Drupalをインストールしたり、ワンクリックでインストールすることができます。あなたがDrupalのインストールをスキップする場合は、次のいずれかのアカウントを取得することを検討してください。

Drupalガーデンサイト構造管理 - ダミー

Drupalガーデンサイト構造管理 - ダミー

Drupal Garden Structureページでは、 、ページ、およびブロックを表示します。このページから制御できる特定の機能、ブロック、およびページには、連絡先フォーム、フォーラム、メーリングリストなどがあります。ブロックで表示される機能をブロックで管理することもできます。

エディタの選択

エグゼクティブとのデータマイニング - ダミー

エグゼクティブとのデータマイニング - ダミー

数字で遊ぶという楽しみのためにデータマイニングに取り掛からない。あなたは行動を望む。あなたは正しいことを見たいと思っています。データからの確かな証拠に基づいてビジネス上の決定を下すことが重要であることを理解しています。しかし、あなたは決定を下す権限を持つ人ではありません。だからあなたは...

ビッグデータガバナンスチャレンジ - ダミー

ビッグデータガバナンスチャレンジ - ダミー

データガバナンスは、大きなデータソースが彼らがどのように管理されているか。従来のデータウェアハウスやリレーショナルデータベース管理の世界では、データ保護の必要性に関するルールをよく理解している可能性があります。たとえば、医療界では、それは...

エディタの選択

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

赤外線を電気的に生成するには、赤外線スペクトルで動作する特殊な発光ダイオード(LED)を使用します。赤外線LED(しばしばIR LEDと呼ばれる)は、RadioShackまたは電子部品を販売する他の店で容易に入手できます。 IR LEDは、通常のLEDと似ていますが、光を見ることはできません。

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

を通して、あなたの電子プロジェクトを制御する場合パラレルポートであるKit 74 DOSソフトウェアは、コマンドプロンプトから実行できるRELAY、DELAY、WAITFORの3つのコマンドで構成されています。 RELAYコマンドRELAYコマンドは、1バイトのデータをパラレルポートに送信します。あなたから実行できること - RELAY、DELAY、およびWAITFOR - 8つの出力端子のそれぞれが...

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

、フリップフロップは特殊なタイプのゲートラッチ回路です。フリップフロップにはいくつかの異なるタイプがあります。フリップフロップの最も一般的なタイプは次のとおりです。SRフリップフロップ:SRラッチに似ています。 CLOCK入力に加えて、SRフリップフロップにはSETとRESETという2つの入力があります。 SET入力がHIGHの場合...