2012-03-12 9 views
0

申し訳ありませんが、私は数学をよくしていません 下のコードを置き換えることができる数式があります。つまり、qid、ポイント、およびループなしの係数を計算します。 forループ計算を数式に変換する方法は?

for (int i = 1; i < qid; i++) 
    { 
     points = points * factor; 
    } 

どのようにループ 感謝することなく一列に計算することができるよりも数式に上記のコードを変換することができます。

+0

どの言語/プラットフォームですか? –

+0

ポイントの値を計算すると、無限の番号と同じになります。ループの.. R u lookng同じ...? – Teja

+0

上記のコードはjavaにあります – Tamer

答えて

2

points1に初期化されると仮定すると、それはpoints = factor^(qid-1)にequvalent、または一般的な場合である:points_after = points_before * factor^(qid-1)

ループがqid - 1回繰り返される[i値を取得:1,2,...,qid-1を、値i==qidのためにあなたが複数ない]、および各反復で、あなたはfactorことにより、複数のpointsたびに、基本的にfactor^(qid-1)

+0

これをどのように把握していますか?ペンとペーパーを使ってテスト値でループをトレースし、いくつかの式や何かをテストしようとしますか? – Tamer

+0

@Tamer:ループが1から 'qid'まで([qid'を含めないで)]繰り返されるので、ループは' qid-1'回繰り返され、繰り返しごとに1ずつ増加するので、 'points = points * factor * factor * ... * factor' ['qid-1' times]は、定義上の点です。点* factor ^(qid-1) – amit

+0

私は自分でそれを行う方法を理解したいと思っていました。何かを学ぶべきかのようなもの:) – Tamer

1

の合計によって、あなた複数のITので、あなたのコードは、ポイント=ポイント」を表すされる*要因qid-1 "。コード内でどのように表現するかは、言語/プラットフォームによって異なります。たとえば、あなたは次のようにJavaコードを使用する可能性があります:

points *= Math.pow(factor, qid - 1); 

正しい答えはpoints、あなたが私たちに言った、どちらもfactorの種類に依存します...

(また、1の代わりに0でループを開始することも考えられます。その場合は、上記のコードから- 1を削除してください。)

0

指数。

points *= power(factor, qid - 1) 

+0

ループは 'qid-1'回繰り返します。 – amit

+0

あなたはそうです。qidが5の場合、ループは4回実行され、factorが.5の場合、結果は.5 * .5 * .5 * .5となりますが、QIDが指数、それは5回になります。編集されました、ありがとうございます。 – DanRedux

0

ポイント* = Math.pow(factor、qid);

+0

ループは 'qid-1'回繰り返します。 – amit

関連する問題