• ベストアンサー

PHPの四則演算について

整数が代入される変数が5つ($a $b $c $d $e $f)あります。 整数の範囲はそれぞれの変数でバラバラです。 $aが1から10まで $bが1から200まで $cが1から50まで といった具合です。 PHPで全ての変数を四則演算して1から46の範囲に収めたいと思っています。 いったいどのような数式にしたら良いのでしょうか?

  • yes87
  • お礼率74% (29/39)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#77845
noname#77845
回答No.1

(何らかの四則演算)%46+1 でいかがですか? %46で46で割った余りが出ます。 この数字は 0~45 までなので+1して1~46にしています。

yes87
質問者

お礼

どうもありがとうございました。

関連するQ&A

  • C言語における複素数の四則演算について

    複素数の四則演算(a+biとc+diの四則演算)について、for文を用いて表示するプログラムについて、???の部分に何を入れたらよいかわからず、うまく実行することができません。和・差・積・商の計算種別を入れるみたいなのですが、何を入れたらいいのかわかりません。 #include <stdio.h> void fukuso(double a,double b,double c,double d,double *e,double *f,int keisan); int main(void) { double a=4, b=8, c=4, d=3, e, f; int i; for(i=1;i<5;i++){ fukuso(a,b,c,d,&e,&f,???); if(i==1) printf("和演算\n"); else if(i==2) printf("差演算\n"); else if(i==3) printf("積演算\n"); else printf("商演算\n"); printf("e=%f f=%f i\n",e,f); } return (0); } void fukuso(double a1,double b1,double a2,double b2,double *a3,double *b3,int keisan) { if(keisan==1){ *e=a+c; *f=a+c; } else if(keisan==2){ *e=a-c; *f=b-d; } else if(keisan==3){ *e=a*c-b*d; *f=a*d+c*b; } else{ *e=(a*c+b*d)/(c*c+d*d); *f=(-a*d+c*b)/(c*c+d*d); } }

  • 等式(=)と非等式(≠)に関する四則演算

    等式(=)に関する四則演算は,加法に関して, ● 交換法則: a+b=b+a, ● 結合法則: (a+b)+c=a+(b+c), ● 簡約法則: a+c=b+c ⇔ a=b であり,乗法に関しては, ■ 交換法則:ab=ba, ■ 結合法則:(ab)c=a(bc), ■ 分配法則:a(b+c)=ab+ac, (a+b)c=ac+bc ■ 簡約法則:ac=bc ⇔ a=b ですが,それでは,非等式(≠)に関する四則演算は,加法に関して, ▲ 交換法則: a+b≠c+d ⇔ a+b≠d+c, b+a≠c+d ▲ 結合法則: (a+b)+c≠d+(e+f), ▲ 簡約法則: a+c≠b+c ⇔ a≠b 乗法に関しては, ▼ 交換法則:ab≠cd ⇔ ab≠dc, ba≠cd ▼ 結合法則:(ab)c≠d(ef), ▼ 分配法則:a(b+c)≠ad+ae, (a+b)c≠dc+ec ▼ 簡約法則:ac≠bc ⇔ a≠b のようになると考えられますが・・・??? 上記の▲と▼については,まだ証明していません. では,この非等式(≠)に対する「結合法則」,「交換法則」, 「分配法則」,「簡約法則」に関しての数学理論はありますか? 書物か雑誌記事をご存じの方,教えて下さい. なお,「非等式」なる用語は正式なものではありません.この場での造語です.

  • C言語で四則演算を使って結果が10になる数式

    C言語のプログラミングについて質問です。 四つの一桁の数字を入力して四則演算を使って結果が10になる数式を作りたいのですが、イメージが湧きません。 教えていただけますか? 例:1234enterkey 答え2*3+1*4 数値の変数はint型でお願いします。int型ですので小数点以下を使って10になる結果は出さなくて宜しいです。お願いします。

  • switchを使って四則演算のプログラムを作りました。

    switchを使って四則演算のプログラムを作りました。 以下プログラム <html> <head> <title>kadai05</title> <script type=text/javascript> function Calc(n) { a = parseInt(document.f.a.value); b = parseInt(document.f.b.value); switch (n) { case 1 : Ans = a + b; break; case 2 : Ans = a - b; break; case 3 : Ans = a * b; break; case 4 : Ans = a / b; break; } document.f.c.value = Ans; } </script> </head> <body> <center> <h3>四則演算</h3> <form name = "f"> <input name="a" size="8"> ☆ <input name="b" size="8"> = <input type="text" name="c" size="10"> <p> <input type="button" value="+" onclick="Calc(1)"> <input type="button" value="- "onclick="Calc(2)"> <input type="button" value="×" onclick="Calc(3)"> <input type="button" value="÷ "onclick="Calc(4)"> </form> </center> </body> </html> これは問題集の問題なのですが、答えを見ると b = parseInt(document.f.b.value)とswitch (n) { の間に Ans = 0;が入っています。 これはなぜ入れているのか解説がありません。 特になくても困らないと思うのですが、なぜ入れているのでしょうか? 入れないことでどんな不具合が起きる可能性があるのでしょうか? 教えて下さい。 お願い致します。

  • 数学的な処理

    プログラムで次の処理をしたいのですが、どうすればよいでしょうか。計算部分をどのように書けば良いかわかりません。 1桁の整数a,b,c,dがあります。 条件は、 a<b<c<d かつ 1≦a,b,c,d≦9です。 このとき、 a,b,c,d の数字間に四則演算符号+-*/を入れ、結果が10になるようにします。整数は順序を入れ替えてもかまわず、()を利用して計算の順序を制御してもかまいません。同じ整数は2度使えません。 結果は数式で表示します。 例: 1+2+3+4=10 (1,2,3,4) 2*3+5-1=10 (1,2,3,5) (3-7/4)*8=10 (3,4,7,8) など。 よろしくおねがいします。

  • C言語の演算について

    次のプログラムを実行したらどう出力されますか。 微妙な代入演算の違いが分からないので、教えていただけないでしょうか。 #include<stdio.h> void main (void) { int x = 5; int y = 8; int z = 3; int a,b,c,d,e,f; a = y == x + z; b = !x; c = x + y / z; d = x *=z - 1; e = --y / --z; f = y+++ % x++; printf("%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f); } できれば途中のトレースも書いていただけると助かります。 よろしくお願いします。

  • IF関数で真の場合に四則演算の結果を返したい

    IF関数で真の場合に四則演算の演算結果を返したいのですが、数式が文字列として表示されるだけで、演算してくれません。 (1)売上が60万未満の場合は0 (2)60万以上、70万未満の場合は売上の27.5% (3)70万以上の場合は30% この条件をIF関数を用いて自動計算したいと思っているのですが、上手くできません。 添付画像のF2欄に売上に応じた値を返したい場合の数式は =IF(F1<600000,"0",IF(AND(F1>=600000,F1<700000),"F1*C3",IF(G2>=700000,"+F1*C4"))) ではダメでしょうか? 上記数式で計算すると、(1)の場合は0が返ってくるのですが、(2)の場合はF1*C3の演算結果ではなく文字列が返ってきてしまいます。(3)の場合も同様にセルにはF1*C4と表示されるだけです。 どなたかご教示願えれば幸甚です。 ちなみにmac版Office2011 です。 よろしくお願いいたします。

  • php と C# の ビット演算

    PHPでビット演算をしていますが、 PHPでたとえば、 c = a >> b でビット演算した値と、 C#で演算した値と aの値を大きくした場合、 4000000000以上? は結果が違ってきます。 C#とPHPではビット演算のアルゴリズムが違うのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 論理和演算子を使って、三項演算子のような簡易分岐ができるようなコードを

    論理和演算子を使って、三項演算子のような簡易分岐ができるようなコードを書けるという テクニックがあるというのを本で読んで試して見たのですが、うまくいきません。 本に書いてあるコードはこんな感じです。 bがなければ、cのプロパティであるdを、それもなければ、500をaに代入する。 bを削除するとdが代入されると思ったのですが、エラーになってしまいます。 //var b = 1; var c = new Object(); c.d = 2; var a = b || c.d || 500 ; どうやったらうまくいきますでしょうか?よろしくお願いします。

  • C言語で計算が合いません(初心者)

    C言語で計算が合いません(初心者) 簡単な計算のプログミングをしているのですが 計算が合わなくて困っています。 整数型変数aと実数型変数bを定義 整数型変数cとdを定義して、c=0.5*a*b、d=a/2*b 実数型変数eとfを定義して、e=0.5*a*b、f=a/2*b という内容のプログラムを作ったのですが a=7,b=2.4を代入してみた結果 ---------------------------- Input a>>7 Input b>>2.4 8 7 8.400000 7.200000 ---------------------------- となりました どこが間違っているのでしょう? 答えは8.4でcが8なのは有効数字のためだと思いますが dとeで答えが全く違う理由が分かりません。 下に私が書いたものを貼っています。 ---------------------------- #include<stdio.h> int main(void){ int a,c,d; double b,e,f,ans; printf("Input a>>"); scanf("%d",&a); printf("Input b>>"); scanf("%lf",&b); c=0.5*a*b; printf("%d\n",c); d=a/2*b; printf("%d\n",d); e=0.5*a*b; printf("%lf\n",e); f=a/2*b; printf("%lf\n",f); return 0; } ---------------------------- よろしくお願いします。