X



トップページ数学
64コメント26KB
アルゴリズムの問題がわからん [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
00145
垢版 |
2015/07/03(金) 01:16:36.05ID:anc5Zim7
(12の続き)
変数Aに2が代入されたところで、さらにA=A+1とすると、変数Aには2+1の計算結果が代入されて、変数Aには3が代入されます
つまり、A=A+1とするたびに、Aの値が1ずつ増加していくというのが、アルゴリズムの性質なのです

では、少し話を戻します、A=A+1の代入式の説明は、アルゴリズムにおけるループの説明のために必要だったのです
そして、ループの説明は配列とループの組み合わせの説明のために必要だったのです

>11で用意した数値配列、
数値配列[0]=3 数値配列[1]=2 数値配列[2]=5 数値配列[3]=3 数値配列[4]=7
を例にした説明に戻りたいと思います
この場合の 数値配列[0]=3 も、アルゴリズムとしての意味は、数値配列[0]に3を代入する、という事です
配列とは変数(先ほどまで箱と呼んできました)が並んだ物であり、変数の説明は>12の通りです
数値配列[0]や数値配列[1]もそれぞれが1つの変数で、変数として値が代入されるのです

再び変数Aを登場させます
変数Aには0~4の値を代入するとします
数値配列[A]とした場合、Aの値によって、数値配列[0~4]を表す事が出来るのです
変数Aの値が2なら、数値配列[A]は数値配列[2]を表し、数値配列[2」の値は5です
これを利用すれば、X日目に食べたパンの枚数を知りたければ、1日目に食べたパンの枚数は数値配列[0]に代入されているので、
A=X-1として、数値配列[A]の値を参照すれば良いのです、
例えば、4日目に食べたパンの枚数なら、A=4-1でA=3、数値配列[A]の値は3で、3枚だった事が分かります
これは変数Aと数値配列を組み合わせて任意の日にちに食べたパンの枚数を調べる方法です
数値配列[1]の[1]を添え字というと説明しましたが、添え字の値は変数(この例では変数A)でも指定できるのです

次に、本題であるループと配列の組み合わせを示します
00155
垢版 |
2015/07/03(金) 02:00:22.92ID:anc5Zim7
(14の続き)
>11からの配列とループの説明を総合すると、次の様なアルゴリズムも理解できると思います
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
数値配列[0~4]に次の値を代入する
数値配列[0]=3 数値配列[1]=2 数値配列[2]=5 数値配列[3]=3 数値配列[4]=7
変数A=0
変数B=0
変数C=0

ループの開始点
B=B+数値配列[A]
A=A+1
ループの開始点へ、ただし、A=5ならループを終了する

C=B/5
Bの値を表示する
Cの値を表示する
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
BとCの値としてそれぞれ幾らが表示されるでしょうか?
このアルゴリズムの肝は、>B=B+数値配列[A] と、>A=A+1 の部分です、これこそ、「配列とループの組み合わせ」なのです
B=B+数値配列[A] の処理では、Bの初期値を0として、Bに数値配列[A]を加算した値をBに代入しています
A=A+1 の処理によって、ループを繰り返すたびにAの値は0から1ずつ増加しています
その結果、1回目のループではBに数値配列[0]が加算され、2回目のループではBに数値配列[1]が加算されます
結論を言いますと、上記のアルゴリズムを実行すると、表示されるBの値は20になり、Cの値は4になるのですが
このアルゴリズムは、5日間に食べたパンの枚数の合計値と、1日に食べたパンの枚数の平均値を求めるものなのです
このアルゴリズムに少し手を加えれば、1日に食べたパンの枚数の最大値や最小値などを求める事もできます
その汎用性こそ配列とループの組み合わせが無限の可能性を持つと言える根拠です

>>13いえいえ、問題を作った人が悪いのです
配列は重要なので、解説しようと思いましたが、難しかったですw
一度レスは休みますが、また良い説明が思いついたら書きにきます
0017132人目の素数さん
垢版 |
2015/07/03(金) 16:58:40.95ID:f+HQExFc
5さん根本的にミスしてるぞ。

何故、目的文字列配列にNULLが挿入されているのか考えてみろ。
普通は、目的文字列を探索するのに「B」「C」「「A」とかではなく、
目的文字列の頭から見つけていって、NULLがでてくるまでを
合致条件とみなすというのを繰り返すアルゴリズムを作成する。
0019132人目の素数さん
垢版 |
2015/07/03(金) 19:48:24.29ID:HoTH5wsh
だから屁理屈なのです
BCAではなく、BCANullを探していると主張しているのです
0020132人目の素数さん
垢版 |
2015/07/03(金) 20:00:06.43ID:f+HQExFc
屁理屈でもいいけど、
「下記の文字列データ配列の中から」と書いてあって、図にはしっかりと
NULLが記載されている。
とするならば、5の主張する「文字列配列の最後にNULLを付加する事がルールとして
示されているのではない 」が明らかに間違い。
0021132人目の素数さん
垢版 |
2015/07/03(金) 20:07:28.76ID:HZrF1ZVf
nullを深読みしても意味が無い
0022132人目の素数さん
垢版 |
2015/07/03(金) 20:08:35.73ID:HoTH5wsh
間違いとはいえませんが、常識的に考えておかしいから「屁理屈」なのです
図に書いてあったとしても、そのNullが、強制されたものか、任意に付け加えられたものであるかは判断することはできません
0024132人目の素数さん
垢版 |
2015/07/03(金) 20:13:43.20ID:HoTH5wsh
なぜ判断できるのですか?
0027132人目の素数さん
垢版 |
2015/07/03(金) 20:22:37.49ID:HoTH5wsh
その自明なことを問われているとは考えないのですか?
0028132人目の素数さん
垢版 |
2015/07/03(金) 20:26:00.06ID:f+HQExFc
意味が分からないのだが?

では、目的文字列配列を何故「B」「C」「A」「*」(ただし「*」は「NULL」を含む任意の文字列)
と表現できるのか?
「*」「*」「*」「*」(ただし「*」は「NULL」を含む任意の文字列) と表現するのが筋では
0029132人目の素数さん
垢版 |
2015/07/03(金) 20:29:17.77ID:HoTH5wsh
なんか最初の私と同じ勘違いしてるんですかね?
>>5の言ってるのは、7文字目〜10文字目がBCANullであるのをしらべるだけでよいということです
Nullをワイルドカード扱いにはしていませんよ
0031132人目の素数さん
垢版 |
2015/07/03(金) 20:34:31.11ID:HoTH5wsh
>>8
>仮に、文字列配列にも目的文字列配列にも末尾に「NULL」を付加する事が必須であれば、
>まさしく>6の回答が正しい事になります
>また、上記のNULLの意味を踏まえて、

これは私達の「勘違い」に付き合っているだけです
0032132人目の素数さん
垢版 |
2015/07/03(金) 20:35:23.33ID:f+HQExFc
7文字目〜10文字目がBCANullであるのをしらべるだけでよいということです

str[4]=NULL という場合は考えられないのか?
0034132人目の素数さん
垢版 |
2015/07/03(金) 20:47:00.89ID:HoTH5wsh
>>32
はい、なぜならば、あなたの言う通り、図には、10文字目にNullがあり、5文字目はNullではないからです
0036132人目の素数さん
垢版 |
2015/07/03(金) 20:50:22.51ID:HoTH5wsh
どういう意味ですか?
0037132人目の素数さん
垢版 |
2015/07/04(土) 05:50:49.34ID:t+w4ffB5
☆ 総務省の『憲法改正国民投票法』のURLですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/
☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願いします。☆
0038132人目の素数さん
垢版 |
2015/07/08(水) 07:07:11.78ID:W6qMGOWm
面白そうなスレ見つけたと思ったら変な奴がドヤ顔で屁理屈並べてるだけでワロエナイ
0040132人目の素数さん
垢版 |
2015/07/08(水) 15:34:23.89ID:acNgIw6V
仕様に解釈に迷う所があったら確認するのがプロの仕事で
俺理論で突っ走るのはド素人だよな
0042132人目の素数さん
垢版 |
2016/12/18(日) 17:08:00.80ID:9aVtBTUZ
良スレ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況