0

PHP に変換できない、または別の方法で説明できない数学的な問題があります。誰かが私を正しい方向に送ることができますか?

私は順序(シーケンス)である2つの番号を持っています。#1#2100どういうわけかこれらの2つの数値を比較し、比較の結果よりも小さい正の数値を取得したいと考えています。値が高いほど、結果は高くなります。ただし、#2も高い場合、結果はそれに応じて「淡色表示」する必要があります...

これらは「期待される結果」です:

#1: 5           #2: 10         => ~ 5
#2: 10          #2: 5          => ~ 8
#1: 50          #2: 60         => ~ 12
#1: 50          #2: 100        => ~ 8
#1: 100         #2: 50         => ~ 20
#1: 500         #2: 500        => ~ 25
#1: 500         #2: 100        => ~ 50
#1: 100         #2: 500        => ~ 15

数値 (1または2) の範囲は01000です。結果は単なる推定であり、明らかに異なります。それがどのように関連しているかを示したいだけです。

4

2 に答える 2

1

曲線をデータに当てはめる機会のように聞こえ、それらの係数を使用して 2 つの入力変数の結果が得られます。

開始するには、予想される結果を方眼紙にプロットし、意味のあるプロットがあるかどうかを確認します。

于 2009-11-22T00:24:03.783 に答える
1

最初に、(数学) 関数 f(x, y) = z を定義して、きれいな数学的モデルを設定する必要があります。ここで、x = #1、y = #2、z = 出力です。私はあなたのデータでそのような機能を述べることができませんでしたが、それはプログラミング言語で問題を実装したいときはいつでも必要な基礎です.

だから、あなたが次のようなものが欲しいとしましょう

  f(x, y) = {
       50 + (x - y) * y > x の場合は 50/y
       (y - x) * y の場合は 50/x

この関数は #1 (x) と #2 (y) を比較し、x と y のどちらが大きいかに応じて、結果として 50 から 100 または 0 から 50 の間の数値を返します。

PHP などのプログラミング言語で数学関数を正しく実装するのは非常に簡単です。

関数 f(x, y) { (y > x) を返しますか? ( 50 + (xy)*50/y ) : ( (yx) * 50/x ); }

これで、コードから、または HTML フォームなどからその関数を呼び出すことができます。

于 2009-11-21T22:08:59.753 に答える