はじめまして。今データ構造とアルゴリズムを勉強しているのですが、前置形でつまずいてしまいました。以下の問題を解くのですが、いまいち自分で出した答えに自身がないのです。
問題 式((a+b)+c*(d+e)+f)*(g+h)を前置形に変換せよ。
自分は、与えられた式を元に木を再現して、それから行きがけ順に並べたのですが。自信がないところは、ずばり、最初の項で和が3つあるところなんです。考え方の一つとして、枝分かれを3つという考え(すなわち、*++ab*c+def+gh)と、3つを一つの和ともう2つの和と分けて考える(すなわち*++ab+*c+def+gh)のと、どちらが正解なのでしょうか?といいますのも、defのところで、今度は逆に前置形からもとの式を作り直すときに違う式ができるのでは、と思うからです。
よろしくお願いします。
No.4
- 回答日時:
式((a+b)+c*(d+e)+f)*(g+h)を前置形に変換せよ。
これを前置系に変換すると
*+++ab*c+def+gh
これを元に戻すと
((a+b)+c*(d+e)+f)*(g+h)
となってきちんと戻り何の問題もありません。
No.3
- 回答日時:
#1は、勘違いしていました
A+B+Cを
+ABCとするか
++ABCまたは+A+BCとするかって話ですね。
(私は後者の話だと思っていました。)
+は普通に考えたら2項演算子ですので、
+ABCとは出来ません
+(ABC)と表記するとか拡張が必要だと思います。
でないと質問者も言っている通り元には戻りません。
No.1
- 回答日時:
どっちでも数式としての評価は同じだと思いますが、
要は
A+B+C
を
(A+B)+Cとするか
A+(B+C)とするか
って意味の様に思えます。
数学的には、
(A+B)+C=A+(B+C)だと思いますので、どちらでもいいのでしょうが
プログラム的には
+の優先順位は同等なのでどちらでもいいですけど
基本的には、左から評価するという規則が使われることが多いと思います。
その場合は、
(A+B)+C
ってことになりますね。
元の式が作り出せるかどうかというのは、
要は()のくくりが戻せるかということでもあると思いますが
(A+B+C)の部分は、()が使われていないので、厳密には同じ式に戻らない(どこに()が使われてあるいは使われていないかという情報が失われている)と思います。
いずれにしても、式全体としては、正しいものに戻せるとは思いますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- 高校 数学の成績の波が激しい&思い込みが強すぎるのを治したいです 6 2022/12/21 21:44
- 英語 「自動詞+前置詞」で第5文型をとる文の構造について 3 2023/01/04 10:22
- 数学 2次方程式の「(x-3)^2=4」を解くとき、 そのまま解くことも可能ですが A=x-3と置いて、A 3 2023/01/27 18:20
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- 数学 『4色問題③』 2 2022/11/14 00:31
- 数学 数2Bの数列の問題です。 自分は、 まず数列 an=ar^(n-1)と置き こちらの問題の、y= の 1 2022/07/07 16:26
- 数学 高校数学の質問です 文字を消去したり、置き換えたりしたら、残った文字に範囲がつくかどうか調べるという 4 2023/05/03 18:18
- 物理学 物理の単振動の問題で分からない所を教えてください 1 2023/05/10 20:59
- 大学受験 化学 2 2022/07/20 15:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
C++からCへのソース変換について
-
Mac 乗数の入力方法
-
はしごの高をマックで表示する...
-
VB.NETとVB6.0でAPIを使う場...
-
SJIS⇔UTF-8の文字コード...
-
VBAを使って二進法計算
-
XMLからCSV変換について
-
OpenCVで画像をある角度から見...
-
tex 郵便記号のだしかた
-
C++を使った汎用性のあるXML変...
-
gnuplotをC言語で操作する方法
-
機械語からアセンブリ言語への...
-
木構造の前置形と行きがけ順に...
-
配列 反時計回り90ど回転
-
色の変換
-
緯度、経度の 10進法と 60進法...
-
エクセルのvbaで検索ボタンを作る
-
内部文字コードとは?
-
VS2012でOnInitDialogが2回呼出し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
エクセルVBAの自動変換機能?
-
アセンブラ言語の数字を数値に...
-
なぜ通信には16進数文字列が使...
-
SJIS⇔UTF-8の文字コード...
-
C++からCへのソース変換について
-
分を時間に変換するプログラム
-
UTF8→ShiftJISに変換したいです!
-
家電製品の電力周波数を変える機械
-
マンセル⇔XYZ,RGB変換式或いは...
-
VB.NETをJavaに変換するツール...
-
画像ファイル変換(Tiff→PDF)
-
PHPで、日本語からアルファベッ...
-
魚眼レンズの画像処理
-
C#で漢字→ローマ字を変換
-
StrConvの使い方について教えて...
おすすめ情報