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

C言語のwhileを使ってプログラムを組みたいです!自分でやってみたのですが答えが合わないので教えてください

• 男性全てホストになる(人数を超える)のは西暦何年か求めよ
– 男性の人数はずっと50万人とする
– 2006年5名,2014年20名を初期データとし,2014年以降同じ経過年数の間に同じ「倍率」で増えるものとする
• 女性が全てキャバ嬢になる(人数を超える)のは西暦何年か求めよ
– 女性の人数はずっと50万人とする
– 2006年5名,2014年38名を初期データとし,2014年以降同じ経過年数の間に同じ「差」で増えるものとする

ホストの人数がキャバ嬢の人数を上回るのは西暦何年か求め,そのときの,それぞれの人数を答えよ

A 回答 (3件)

アイディアとしては面白い問題なんだけど、穴があるような気がする。


そもそも、

– 男性の人数はずっと50万人とする
– 2006年5名,2014年20名を初期データとし,2014年以降同じ経過年数の間に同じ「倍率」で増えるものとする

> 2006年5名,2014年20名

ってのは「新規に登場した」数なのか、あるいは「累積」なのか。どっちなのかで意味が全然変わってくる。
累積なら2006年に5名なんだけど、その後8年間で増えた数は15名って事になる。
この辺の記述がもの凄く曖昧だ。

加えると、等比数列の「連立方程式」は一般に一意に解が決まらないと思う。rが「累乗」な以上、そうならざるを得ない。
つまり、「一意に解が決まらない」のに「決まる事にして」問題を作れば、単純に不都合が起きて当たり前、だと思う。

なんか条件が足りないか、あるいは出題者の頭が足りないか、どっちかなんじゃないか。
    • good
    • 1

プログラムを書く前に先に数式を考えたほうが良いです。

多分高校1年くらいの学力。
質問文を読むと、男は等比数列で、女は等差数列っぽいです。

等比数列ならAn=5*r^(n-2006)※n=2006,2007,2008,...
A2014=5*r^8=20 ∴r=10^(2*log(2)/8)=10^0.0752=1.189
5*1.189^(n-2006)>5e5になるnは、いくつか?
――みたいに計算できます。

ただ「2014年以降同じ経過年数の間に同じ「倍率」で増えるものとする」ってのが、落とし穴のようにも見えます。多分、質問文で足りない情報は授業で教えられてる(もしくは教科書に載ってる)と思われますので、そちらを勉強してみては。
    • good
    • 0

自分でやったソースを提示してください。


正しい答えとあなたがだした答えは、どうなってますか?
    • good
    • 1

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