アプリ版:「スタンプのみでお礼する」機能のリリースについて

複利の計算方法が知りたいです

3600に1分間に+180ずつ複利がつく場合1000000に達するのに何分かかるかの公式教えてください!
3600+3780+3960+4140………
で1000000まで何分かかるか

%で計算できるならそちらも教えて欲しいです
仮に5%の場合とか!

質問者からの補足コメント

  • 複利という言い方が悪かったみたいですが
    この場合なんというのかわからないので
    とりあえず
    計算式あるなら教えてもらえたら助かります!

      補足日時:2024/02/27 16:45

A 回答 (5件)

「複利」の意味が分かっていますか?



「3600に1分間に+180ずつ利息が付く」では「複利」になりません。

>3600+3780+3960+4140………
>で1000000まで何分かかるか

それでは、「1分間に+180ずつ利息が付く」ではなくて、「1分間に元金 + 180 ずつ利息が付く」ですよ。
そんな利息の付け方をするものは、ふつうありませんが。

それなら、期間を N分とすれば、N分後の合計は
 Σ[k=1~N]{3600 + (3600 + 180k)}
= 3600(N + 1) + 180Σ[k=1~N]k
= 3600(N + 1) + 90N(N + 1)
= 90N^2 + 3690N + 3600
ですから、これが 1,000,000 になる期間 N は
 90N^2 + 3690N + 3600 = 1,000,000
となる N を求めればい。

計算してみれば
 90N^2 + 3690N + 3600 = 1,000,000
→ 9N^2 + 369N - 99640 = 0
二次方程式の一般解の公式より
 N = {-369 ± √(369^2 + 4 × 9 × 99640)}/18
  = {-369 ± 1929.559794}/18
N>0 なので
 N = {-369 + 1929.559794}/18
  = 86.6977・・・
  ≒ 87 分
  = 1時間27分

********************

本当に「複利」なら、
「最初 3600 で、1分間に +5% の利息が付く」
ということでしょうか。
そうであれば、N 分後には
 3600 × (1 + 0.05)^N    ①
になります。
1分後:3600 × 1.05 = 3780
2分後:3780 × 1.05 = 3969
3分後:3969 × 1.05 = 4167.45
・・・
になる、という具合です。
「複利」とは「利息にもまた利息が付く」という増え方ですから。
なお、それらを足し合わせるのではなく、それそのものが「元利合計」です。

ということで、①の式で 1,000,000 を越えるのは
 3600 × (1 + 0.05)^N = 1,000,000
→ 1.05^N = 1,000,000/3600 = 277.77777・・・
N を求めるには、対数をとって
 N・log(1.05) = log(277.77777・・・)
→ N = log(277.77777・・・) / log(1.05)
   = 115.3269・・・
「1,000,000 を越える整数値」であれば
 N = 116分 = 1時間56分

複利の計算は、上の①のように、元金が B、金利が r、期間が n であれば
 B(1 + r)^n
という式になります。


ちなみに、「最初 3600 で、1分間に +180 の利息が付く」つまり「単利」であれば、N 分後の元利合計は
 B(1 + nr)
ですから
 3600 + 180N
であり、これが 1,000,000 を越えるのは
 3600 + 180N = 1,000,000
→ 180N = 1,000,000 - 3,600 = 996,400
→ N = 5535.55555・・・
   ≒ 5536 分
   = 92時間16分
   = 3日と20時間16分
    • good
    • 0
この回答へのお礼

利息ですね
ありがとうございます
ゲームのイベントの数値なのです
やっぱり難しいので公式ちゃんと理解できないですが
とりあえずありがとうございます!
答えは参考になります!

お礼日時:2024/02/27 17:43

大体、ここは「計算機科学」っつーカテゴリなのに、質問投稿も回答も相変わらず無茶苦茶だよな(笑)。


全然計算機関係ねぇやん(苦笑)。

> 3600+3780+3960+4140………
> で1000000まで何分かかるか

これが質問なの?複利も何も関係無く?

単に

a_n = 3600 + 180*n

とした時に、Σa_nが1000000以上になるnを探せ、それが題意、でいいのかな?
(n = 0が初項だとすればn項目、がn分後、って意味になる)

Racketと言うプログラミング言語を使う。

Racket:
https://racket-lang.org

考え方はこうだ。
まず、3600, 3780, 3960, 4140………と言う無限長の数列を考える。
初項からの和を取っていった時、ある時nで総和が1000000より大きくなった時点で、「それまでの」有限長の数列を切り取る。その数列の「長さ」が答えだ。
プログラムは次のようになる。

実装例:
https://www.ideone.com/YCinKE

プログラムを走らせてみれば分かると思う。
答えは88分後、だ。88分後、つまり、1時間28分後に数列の和は1000000を突破する。
実際、

> (apply + (stream->list
   (stream-take 87 (stream-iterate (lambda (x)
                  (+ x 180)) 3600))))
986580
> (apply + (stream->list
   (stream-take 88 (stream-iterate (lambda (x)
                  (+ x 180)) 3600))))
1005840

となって、87分後ではまだ1000000は突破しないが、88分後には1000000を突破している。

以上。
    • good
    • 0

1000000=n/2(2⋅3600+(n−1)⋅180)


◯%で計算したいなら180のところを置き換えれば良い。

これが公式ですが、公式ってただ計算式をスマートに表現してるだけで、結局そこから面倒くさい計算をしていくのには変わりないですから、一発で計算できるものなんてないですよ?
一発でやりたいならそれこそExcelの数式とか、他のプログラミング言語使って計算させるとかが必要になってしまいます。
    • good
    • 0
この回答へのお礼

なるほどありがとうございます!

お礼日時:2024/02/27 22:34

複利が何か勉強しなおしておいで

    • good
    • 0

「1分間に+180ずつ」は複利じゃないです。



複利ってのは以下のような増え方です。
0分
3600
1分後
3600x1.05=3780
2分後
3600x1.05x1.05=3969
3分後
3600x1.05x1.05x1.05=4167.45

これが1000000を超えるまで1.05を何回掛けるかが答えです。
    • good
    • 0
この回答へのお礼

地道に掛け算を答えになるまでやるしかないのですか?
XやYなど使って一発で出すような公式が知りたいのです

お礼日時:2024/02/27 16:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A