• ベストアンサー

基本情報午後問題について

基数a,指数nを入力し、べき乗を変数PWに求めて出力するループを用いたアルゴリズムをa,n,PWのみを使用して作りなさい。 上記の問題を考えていたのですが、変なこと(?)を考えて思考が停止してしまいました。 ループを作る際、PW=a^nという終了条件を置いてみたところ、肯定するのをはばかられるにも関わらず、否定する要素が見つからないのです。 「PWは不明数なのだから」と諭されても、PWを終了条件に使ってダメというルールはありませんし… どなたかお馬鹿な私にPW=a^nとしてはいけない理由付けをしていただけないでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.4

コンピュータ言語の習い始めの第一の障害は、数学のルールをそのまま持ち込むことです。 数式が似ていても数学とは別物がコンピュータ言語です。 誰しも i=i+1 とか全然イコールじゃないし、とか理解できないでしょう。 しかしこれを数学とは別の解釈で理解していく必要があります。 PW=a^nを否定出来ないのは数学のルールで考えているからです。 コンピュータ言語のルールで考えると、完全にアウトです。 第一、その数式が使えたら繰返し演算する必要がありません。 コンピュータ言語を理解する上で必要なことは、決まっている数値を単純計算で積み上げて記憶し、その記憶した決まった数値を使って次の計算に進む、という積み上げていく形を必ず持つことです。 四則演算以外の計算は数式ではなく、関数を使用します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.5

擬似言語かと思ったら、「終了条件」ってあるので流れ図か。擬似言語なら「継続条件」だし。 どちらにせよ、「a^n」が「aのn乗」を表すとは限らないということですね。

Calpis28
質問者

お礼

ありがとうございます。資格取得目指して勉強します。

全文を見る
すると、全ての回答が全文表示されます。
  • tsunji
  • ベストアンサー率20% (196/958)
回答No.3

C言語だと"a xor n"という解釈になりますよ。

Calpis28
質問者

お礼

回答ありがとうございました。資格取得目指して勉強します。

全文を見る
すると、全ての回答が全文表示されます。
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.2

午後ということは擬似言語だと思いますが、擬似言語で使える演算子は http://books.google.co.jp/books?id=ZiWcU4aTEJkC&pg=PA20&lpg=PA20&dq=%E6%93%AC%E4%BC%BC%E8%A8%80%E8%AA%9E%E3%80%80%E6%BC%94%E7%AE%97%E5%AD%90&source=bl&ots=sJ3VOBaopt&sig=_Vymuh0ugtubz0rn0AgwsHkQbek&hl=ja&sa=X&ei=6Yh3UZi9GceeiALIi4CwDQ&ved=0CEUQ6AEwAw#v=onepage&q=%E6%93%AC%E4%BC%BC%E8%A8%80%E8%AA%9E%E3%80%80%E6%BC%94%E7%AE%97%E5%AD%90&f=false の通り、べき乗の演算子はありません。なので、「a^n」という計算そのものが実行できないのです。

Calpis28
質問者

お礼

ありがとうございます。資格取得目指して勉強します。

全文を見る
すると、全ての回答が全文表示されます。
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

アルゴリズムを記述するのは流れ図ですか?擬似言語ですか? まあ、どちらにせ「^」の演算子が使えません。べき乗の演算子がないので、掛け算とループで実現しなさいという問題なのだと思います。 ※使えるのであればループにする必要もありません。

Calpis28
質問者

お礼

ありがとうございます。資格取得目指して勉強します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 基数変換のアルゴリズムの問題

    アルゴリズムの問題の回答に納得がいきません。 変換対象をDEC、基数をBASEに格納し、基数変換を行うというものです。 配列Bの添え字は「1」から始まり、DECをBASEで割った余りを 求める関数MODはあらかじめ用意されているものとする。 1.変数Iに1を格納、変数DECに変換対象を格納、変数BASEに基数を格納。 2.MOD(DEC,BASE)の結果を変数Nに格納。 3.NをB(I)に格納。 4.I + 1 をIに格納。 5.「 」の結果を変数DECに格納。 6.DEC=0なら処理終了、それ以外は(2) の処理へ戻る。 「  」内を埋める問題です。 私の答えは「(DEC - N) / BASE」だったのですが、正解は「DEC / BASE」でした。 DECからN(余り)を引いてからBASEで割らないと、 割り切れない場合、最悪いつまで経っても「DEC=0」にはならなくなってしまうと思うのですが、そうではないのでしょうか? 正解は「DEC / BASE」で、あっているのでしょうか? Perlでプログラムを書いて(配列Bの添え字は0からにして、whileの条件式を「DEC != 0」にしました)試してみましたが、 「DEC / BASE」だと、割り切れない場合、結果の0の数がえらいことになってしまいました(^^;) ちゃんと勉強し始めたのがつい最近なので説明がうまくできませんが、どなたか解るかた教えてくださいm(_ _)m

  • 数学の問題です。(´・ω・`)

    こんばんは。 (x-1)・x^(n-1)=a っていう式を、x= の形に変形できませんでしょうか? 条件は、xが求めたい変数で範囲はx>1、nは定数でn>1の整数限定でも可、 aも定数です。 ^はべき乗です。 宜しくお願い致します。m(_ _)m

  • 基本情報処理試験(午後)疑似言語について

    平成17年春 問4 http://情報処理試験.jp/FE17a-pm/t04.html 上記URLの問題に、HerpSort関数があり、その関数内に以下のループがあります。 ■Idx: Num, Idx > 1,-1 | ・Swap(1, Idx) | ・MarkHeap(1, Idx-1) ■ ループ条件式に「Idx: Num」とありますが、どういう意味でしょうか? 変数Idxの値が、何らかの条件でNumになるのでしょうか?

  • 基本情報処理試験・午後・疑似言語について

    平成17年春 問4 http://情報処理試験.jp/FE17a-pm/t04.html 上記URLの問題に、HerpSort関数があり、その関数内に以下のループがあります。 ■Idx: Num, Idx > 1,-1 | ・Swap(1, Idx) | ・MarkHeap(1, Idx-1) ■ ループ条件式に「Idx: Num」とありますが、どういう意味でしょうか? 変数Idxの値が、何らかの条件でNumになるのでしょうか?

  • デジタル時計のアルゴリズム

    こんばんは。私は、プログラミングを学ぶ社会人です。現在研修中の身です。 デジタル時計のアルゴリズムを考えていまして、とりあえず無限ループさせればいいのかな?と思いました。 ところで、無限ループさせるためのアルゴリズムって、どのように書けばよろしいのでしょうか? 例えば大まかに言うと「変数TIME→0」と書いた後で、 ループ開始 | TIME+1→TIME | ループ終了 (※「|」は下に向かうフローです。) と記述し、終了条件を何も書かなければ、それで無限にループされることになるのでしょうか? ご回答よろしくお願い致します。

  • アルゴリズムの問題です

    以下のフローチャートは、基本選択法でデータを昇順(小→大)にソートしたものなのですが、整数の一次元配列に格納されているデータ(100個)を降順(大→小)にソートするフローチャートを作成するには、どこの部分を変化させればいいのか教えていただけませんか? 手書きなので見にくいですがよろしくお願いします。        開始        l 整数配列A(100)と整数変数I,J,N,P,MIN,TEMPを宣言        l   データの個数N の値を読む        l     ループ1の開始     I = 1,2,3, ・・・,N        l      A(I)の値を読む        l      ループ1の終了        l      ループ2の開始      I = 1,2,3, ・・・,N        l      A(I)の値を出力        l      ループ2の終了        l      ループ3の開始      I = 1,2,3, ・・・,N-1        l      MIN = A(I)        l       P = I        l      ループ4の開始     J = I+1,I+2,I+3, ・・・,N        l        l     yes      A(J) < MIN  ーーーーーー MIN = A(J)         l no               l        l                P = J        l                 l              l←ーーーーーーーーーーー          l                  ループ4の終了        l       TEMP = A(I)        l       A(I) = A(P)        l       A(P) = TEMP        l      ループ3の終了        l      ループ5の開始      I = 1,2,3, ・・・,N        l      A(I)の値を出力        l      ループ5の終了        l        終了

  • データ構造とアルゴリズムの問題です

    要素数がnである配列aの要素の最大値を求めるアルゴリズムのループ端によるフローチャートを完成せよ(前判定繰返し) max =a[0] i=1; while i<n do{ if(a[i]>max)max=a[i]; i++; } a[0] → max 1 → i 前判定繰返し □ | yes a[i]□max-----| |        □      NO i+1 → i 前判定繰返し □の中を埋めるんですが教えてください

  • データ構造とアルゴリズムの問題です

    要素数がnである配列aの要素の合計を求めるアルゴリズムのループ端によるフローチャートを完成せよ(後判定繰返し) sum =a[0] i=1; do{sum=sum+a[i]; i++; }while i<n; a[0] → sum 1 → i 後判定繰返し | □→sum; i+1 → i | □ 後判定繰返し □の中を埋めるんですが教えてください

  • フローチャートの書き方

    要素数がnである配列aの要素の最大値を求めるアルゴリズムのループ端によるフローチャートを完成せよ(前判定繰返し) max =a[0] i=1; while i<n do{ if(a[i]>max)max=a[i]; i++; } フローチャートでかくとどうなりますか?

  • 基本情報技術平成21年春午後問8のアルゴリズム問題での疑問です

    情報処理技術者試験見習い中です。 春の試験落としました。秋期は絶対に合格したいので、春の問題を復習中です。 午後の問8アルゴリズムで、擬似言語のソースがどうしてもわからない箇所があります。 行番号5 変数:vpos(64)、hpos(64) の要素数が64も取られている理由がわかりません。 後半のループ処理を見る限り、vpos、hposの添え字に使われているmoreは多くても3つまでしか 増えません(処理待ちの画素数)。なので、せっかく64も領域が取られていても、実際に使われるのは 問題の範囲では、3が適当なのではと思いました。 もしくは、汎用性、拡張性を考えて、処理対象画素数の分だけ領域をとっているのでしょうか。 設問の本質から逸脱しておりますが、気になったので投稿させていただきました。 *基礎がまだ身についていません。プログラムや設問の解釈に誤りがあるかもしれません。  その際はご容赦ください。。 試験問題 http://app.cocolog-nifty.com/t/comments?__mode=red&user_id=58606&id=37468099