1196049342 方程式を作ってほしいです。採用した方に1000ptさしあげます。

全体で100%のものがあるとします。
1%のときは8をかけて8%
6%のときは4をかけて24%
50%のときは1.5をかけて75%
100%のときは1をかけて100%
となるような感じで「a%のときは x をかけてy%にする」という式を作ってほしいです。
「a%のときは bx をかけてy%にする」となるのかもしれません。
画像のように反比例のグラフになるかと思います。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/11/28 12:58:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答6件)

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント200pt

とりあえず、例示された数値のように計算する例です。

実装方法も示されていませんでしたので、とりあえず HTML での例です。

<html>
<head>
<script language="JavaScript">
function calc() {
	var inNum = document.myForm.indata.value;
	var res;
	if ( inNum >= 100  ) {
		res = inNum;
	} else if ( inNum >=50 ) {
		res = inNum * 1.5;
	} else if ( inNum >=4 ) {
		res = inNum * 6;
	} else {
		res = inNum * 8;
	}
	document.myForm.anser.value = res;
}
</script>
<title>myFunction</title>
</head>
<body>
	<form name="myForm">
	数値入力してください <br>
	<input type="text" name="indata">%
	⇒ <input type="text" name="anser">%<br>
	<input type="button" value="計算" onclick="calc();">
	</form>
</body>
</html>

仕様が異なる場合は、コメントください。

基本的には赤い部分の変更だけで対応可能なはずです。

コメントにて対応いたします。

id:rupopon

ありがとうございます。

私どもの考えている事よりももっと上の案です。

参考にさせていただきます。

2007/11/28 10:40:57
id:Wize No.2

回答回数65ベストアンサー獲得回数9

ポイント200pt

1.必ずこの4条件を満たさなければいけないのか。

2.式はどの程度複雑でいいのか。

辺りが良く解らないんで、ちゃんとした回答になってるか今ひとつ自信がありませんが……

その4条件を満たすのは、単純な反比例のグラフなどでは無理だと思います。

単純な式で、比較的条件に近いものとしては、y = √a × 10 とかかな、と思うんですが。

1%ならば10%、6%ならば約24.5%、50%ならば約70.7%、100%ならば100%になります。

id:rupopon

ありがとうございます。示した条件そのものが不明確で検討させていただきます。申し訳ありません。

2007/11/28 12:55:10
id:SALINGER No.3

回答回数3454ベストアンサー獲得回数969

ポイント200pt
a のときは (10×√a)/a をかけて 10×√a

でどうでしょうか。

a=1 のとき 10

a=6 のとき 約24.5

a=50 のとき 約70.7

a=100 のとき 100となります

id:rupopon

ありがとうございます。示した条件そのものが不明確でこちらの言いたかったことが的確に伝わっていないと感じました。再度検討させていただきます。申し訳ありません。

2007/11/28 12:55:51
id:ita No.4

回答回数204ベストアンサー獲得回数48

ポイント200pt

統計学の検定を使えばきちんと計算できます。

仮りに全商品が同じ売行きだと仮定します。A1が売れる確率は仕入れた割合と同じa%。

何個か売れて在庫がN個になったとすると、統計理論から商品A1の割合はだいたい a±2*ルート(a*(100-a)/N) の範囲にあるはずで、この範囲をはみ出した場合は偏りがあると分かります。

したがって式は y = a+2*\sqrt{a*(100-a)/N} です。在庫数によって変わります。

  • 在庫の数N=8で計算してみると、
    • a%→ y%
    • 1% →8%
    • 6%→23%
    • 50%→85%
    • 100%→100%
  • 在庫の数N=100で計算してみると、
    • 1% →3%
    • 6%→11%
    • 50%→60%
    • 100%→100%

です。この割合を越えると偏りがあると言えます。

id:rupopon

ありがとうございます。示した条件そのものが不明確でこちらの言いたかったことが的確に伝わっていないと感じました。再度検討させていただきます。申し訳ありません。

2007/11/28 12:55:55
id:pyopyopyo No.5

回答回数377ベストアンサー獲得回数98

ポイント200pt

プログラムを書いて計算したところ,以下のような式が出てきました.

-0.000148170809229096*a*a*a*a + 0.0236127120055562*a*a*a -0.958917639260811*a*a + 8.93545309799829*a

この式の値は

  • a=1 の時 7.999999999933806104
  • a=6 の時 23.999999999039774784
  • a=50 の時 74.999999760562000000
  • a=100 の時 99.999999838319000000

となり,四捨五入すればそれぞれ 8%,24%,75%,100%となります.

いかがでしょうか?

id:rupopon

ありがとうございます。示した条件そのものが不明確でこちらの言いたかったことが的確に伝わっていないと感じました。再度検討させていただきます。申し訳ありません。

2007/11/28 12:55:57
id:ardarim No.6

回答回数897ベストアンサー獲得回数145

ポイント200pt

近似してみましたが、どうでしょうか。

x = 8.98223 * ((a + 0.029) ^ -0.337613) - 0.89721

a=100 のとき、y=ax=100.00011

a=50 のとき、y=ax=74.99964501

a=6 のとき、y=ax=24.00098056

a=1 のとき、y=ax=7.998745044

id:rupopon

ありがとうございます。示した条件そのものが不明確でこちらの言いたかったことが的確に伝わっていないと感じました。再度検討させていただきます。申し訳ありません。

2007/11/28 12:56:00
  • id:ootatmt
    仕様が不明です。
    もう少し詳細に書いてください。
    たとえば、
    > 全体で100%のものがあるとします。
    全体の中に要素はいくつかあるのでしょうか?
    その要素の割合を足すと100%になるということでしょうか?
  • id:OVA3
    n/100*X=y
    単純に考えると上記になりますが・・・
  • id:Vacuum
    プログラムで書くとこうなりますが、式の算定は不可能ではないかと。

    #include <stdio.h>
    static float data[] = { 8, 2, 3, 4, 5, 4, 7, 8, 9,10, \
    11,12,13,14,15,16,17,18,19,20, \
    21,22,23,24,25,26,27,28,29,30, \
    31,32,33,34,35,36,37,38,39,40, \
    41,42,43,44,45,46,47,48,49,1.5,\
    51,52,53,54,55,56,57,58,59,60, \
    61,62,63,64,65,66,67,68,69,70, \
    71,72,73,74,75,76,77,78,79,80, \
    81,82,83,84,85,86,87,88,89,90, \
    91,92,93,94,95,96,97,98,99,1 };
    void main () {

    int ix;
    float ans;

    ix = 50;
    ans = data[ix-1] * ix;
    printf ("%f\n",ans);
    }
  • id:blueberrystream
    >「a%のときは x をかけてy%にする」という式
    ということ、まず x を a の関数で表さなきゃいけませんね

    そもそも
    >1%のときは8をかけて8%
    >6%のときは4をかけて24%
    >50%のときは1.5をかけて75%
    ?100%のときは1をかけて100%
    というのが、a と x の関係性を定義しているのか、
    それとも a が特別この値のときだけ x がこうなるというのを定義してるのかがあいまいですね。

    最終的に
    y(a) = a * x(a)
    という式が欲しいのかどうなのか
  • id:Mook
    上記の4つの条件を満たし、間を反比例で補完した関数は下記のとおりになります。
    function calc() {
      var inNum = document.myForm.indata.value;
      var res;
      if ( inNum >=50 ) {
        res = ( 0.5 + 50 / inNum ) * inNum;
      } else if ( inNum >=6 ) {
        res = ( 51 / 44 + 375 / inNum / 22 ) * inNum;
      } else {
        res = ( 3.2 + 4.8 / inNum ) * inNum;
      }
      document.myForm.anser.value = res;
    }
    (インデントに全角スペースを使用しているので、半角に置換してお試しください。)

    多くの方が指摘していますが、より明確な仕様が欲しいところです。
  • id:rupopon
    説明不足ですみません。
    質問の条件ですが、4条件挙げたのはあくまでも例です。
    実は在庫数の偏りを調べたいと思いました。
    Aグループの中にA-1、A-2・・BグループにB-1、B-2・・と商品があります。
    Aの全体数を100%として、A-1の元の入荷数の割合が、A全体の1%の場合には、
    在庫の割合がグループ内で8%くらいを超えたら偏りがある。
    Bの全体数を100%として、B-2の入荷数の割合が6%のときは、B内で24%を超えたら
    偏りがある。といった具合に計算できればと思いました。
  • id:Mook
    在庫管理のお話かと思いますが、適正な数値かどうかを判断するには、入庫数と在庫数だけではなく、販売数が一番重要ではないでしょうか。

    在庫がなくて入庫が多くてもよく売れる商品なら購入しなければならないでしょうし、在庫が多くても売れない商品でしたら、発注の必要はないですよね?
    予測販売量に対して、在庫+入庫が十分か、過剰でないかを管理するのが一般的だと思うのですが。

    後蛇足ですが、ご使用の管理ソフト(EXCEL?)等も明記されたほうが適切な回答が得られるかと思います。
  • id:OVA3
    コメントで書かれている内容でしたらエクセルで十分作成できる範囲です
    フリーの在庫管理ソフトでも出来るものがあったと思います
  • id:ootatmt
    入庫に対して一定期間の出庫数量が50%以下であるというような判断基準にしてはいかがでしょうか?
  • id:ita
    回答4について。
    検定理論で例に似た値がでます。

    1% →8%
    6%→23%
    50%→85%
    100%→100%

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません