2017-06-23 7 views
1

まあ、maxとminを使用してif文を作成する

私の最初の質問はここにあります。

"max"文と "min"文だけを使用して "If"文を作成することはできますか?

問題は2つの数字(AとB)を比較して、B> 1.1×Aであることを確認する必要があるということです。

+0

ええ、それは簡単です。 'if B> 1.1 x A私はBを選んでいなければ、Aを選ぶ。もちろん、あなたの質問に答える方法はまったくありません。なぜなら、あなたがはんだロジックゲートであるのか、lolcatでコーディングしているのかわからないからです。 – Will

+0

こんにちは、私はStackOverflowへようこそ。あなたの質問を拡大して、あなたが働いている言語、ここで説明しているように試したものを指定してください:https://stackoverflow.com/help/how-to-askタグが付いているようにあなたの質問が論理的な質問であるなら、私はそれがここに属していると思う:https://math.stackexchange.com/。 – Jamey

+1

ありがとうございましたproprentary言語は、任意の言語のソリューションが動作するようにします。 – Eperezj

答えて

0

アン声明場合、純粋な(オーダー不変)ロジックや手続きのロジックでいるかどうか、ブール値で動作しますステートメントのみ。それは真実か偽かを意味します。 minまたはmax関数は、真偽値ではなく数値を返します。あなたの質問に対する短い答えはいいえです。最大と最小の戻り値を使ってif文を構築することはできません。

今、あなたの質問の詳細で、あなたはあなたが望むものをもう少し明るくしています。混乱するのは、最大値と最小値が方程式にどのように入り込むかです。 B> 1.1 * AはMaxとMinの処理を必要としないので、MaxとMinの関数を使ってBとAに到達しますか?そうであれば、最初にそれらを処理し、それらの式にプラグインします。

そして、「より大きい」と「より小さい」比較が真偽値を返すので、あなたは運がいいです。あなたの "if"ステートメントでそれを使用してください。ここにいくつかの疑似コードがあります。あなたが望むように見えるように、いくつかの言語は物事がきれいになり、「エルビス」演算子を使用し、コマンドとは対照的に、if文の出力値は、ある

max1 = 25 
max2 = 72 
min1 = 95 
min2 = 80 

A = Max(max1,max2) 
B = Min(min1,min2) 

O = NULL 

if B > 1.1 * A then 
    set O = B 
else 
    set O = A 
end if 

。それを使用すると、あなたはただ書くだけです:

O = B > 1.1 * A ? B : A 
+0

すべての回答に感謝します。私は問題が解決策を持っていないと思ったが、とにかくあなたは希望を持っている。 – Eperezj

+0

@Eperezjあなたが上記の理由で答えが正確に解決されないと受け入れるなら、将来の読者に知らせるために私の答えを受け入れてください。 – pwilcox

+0

完了! pwilcoxもう一度ありがとう – Eperezj

1

あなたの論理演算子が非ブール値を受け入れる場合は、次のように、あなたがそれを行うことができます:

n = Max(B - 1.1*A, 0) 
output = Max(B*(n && n), A) 
関連する問題