• ベストアンサー

関数当てゲーム

xとyの値から関数を当てるゲームです。 値は以下です。 当てはまる関数を教えてください。 x = 1, 2 , 3 , 4 , 5 y = 1, 5 ,14 , 30 , 55 (xが1の時、yが1、xが2の時、yが5という意味です)

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8536/19410)
回答No.3

y=x(x+1)(2x+1)÷6 これは「2乗和の公式」として有名です。

alterd
質問者

お礼

いくら考えても解りませんでしたが 有名な公式でしたか。 きっと、自力では一生思い付かなかったと思います。 深く感謝します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

No.1氏の回答を展開すれば、3次式になりますが。

alterd
質問者

お礼

すみません。 私はまだΣを理解しておりませんので展開出来ません。 出来れば、その3次式を教えて頂けないでしょうか? ともあれ、ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • okwavey2
  • ベストアンサー率15% (251/1593)
回答No.1

活字で上手く書けず申し訳ないのですが x y=Σ n^2 n=1 こんな感じですかね。

alterd
質問者

お礼

上記に補足した通り、Σを習得していない私には理解出来ませんでしたが Σを使えば解けることが解っただけでも収穫でした。 ご回答ありがとうございました。

alterd
質問者

補足

すみません。 説明不足でした。 ブルーバックスから出てる「アメリカ流7歳からの微分積分」に載ってたゲームですので、一応、対象は小学生くらいだと思います。 ですので、Σは、たぶん、使わないと思います。 私自身も数IIをウロチョロしている状態ですのでΣは会得しておりません。 もっと初等的な方程式の範囲では思い付かないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 数当てゲーム

    たのしいCという本でプログラミングの勉強をしています。 演習問題の解答がないので質問します。 2つの乱数を決定し、x以上y以下の整数を当てるプログラムです。 入力した数に対してヒントがあり、正解よりも小さければ"小さいです"と表示されます。 入力回数の制限を設け、乱数によって適切な入力回数にする計算方法の仕方がわかりません。 0以上1000以下の乱数の場合10回が適切みたいです。 よって0以上2000以下の場合は11回だということだと思います。 下のプログラムは回数の計算はしませんが、x以上y以下の整数を当てるプログラムになっていると思います。 適当な変数の名前や見にくいプログラムですいません。 /* 課題1-3 */ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 11 /* 最大入力回数 */ int main(void) { int i; int no1; /* 範囲1 */ int no2; /* 範囲2 */ int max; /* 大きい乱数 */ int min; /* 小さい乱数 */ int y; /* 当てさせる数 */ int k; /* maxとminの差 */ int stage; /* 入力回数 */ int x; /* 読み込んだ値 */ int xbuf[MAX_STAGE]; srand(time(NULL)); no1 = rand(); no2 = rand(); if(no1 > no2){ max = no1; min = no2; } else{ max = no2; min = no1; } k = max - min; y = min + rand() % (k+1); printf("%d以上%d以下の整数を当ててください。\n", min, max); stage = 0; do{ printf("残り%d回。いくつでしょう:\n", MAX_STAGE - stage); scanf("%d", &x); xbuf[stage++] = x; if(y > x) printf("小さいです。\n"); else if(y < x) printf("大きいです。\n"); }while(y != x && stage < MAX_STAGE); if(y != x) printf("残念でした。正解は%dです。", y); else printf("正解です。%d回目で正解しました。", stage); puts("\n---入力履歴---"); for(i=0; i<stage; i++) printf(" %2d : %4d %+4d\n", i+1, xbuf[i], xbuf[i] - y); return (0); } 自分が考えた入力回数の設定は、kの値をif文で場合分けして入力回数を決定するという方法が思いつきました。他に何か良いアイデアとかってあるのでしょうか。 また、ごちゃごちゃと文を書いているので改善点などもあればよろしくお願いします。

  • 数当てゲームを作っているのですが

    数当てゲームを作っているのですが 乱数を設定してその値よりも小さい値を入力したら「小さい」、 大きい値を入力したら「大きい」と表示して その値を入力したときは「正解」と表示するような数当てゲームを作っています。 一応コードは書けたのですが、コンパイル、実行がうまくいかないのです。 ご指摘お願いします。 以下コード /* 1~99の乱数を発生させる */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i,random; // 乱数の種を植える,種に時間を使う srand((unsigned)time(NULL)); for(i=0; i<1; i++) { //乱数の発生 random = 1 + rand()%99; printf("%d\n",random); } printf("数当てゲームをはじめます。\nコンピュータが当たり数を用意しました。当たり数は1~99の間にあります。\n"); for(;;) { printf("あなたの予想は? > "); scanf("%d",&i); if(i>random) puts("大きい"); else puts("小さい"); break; } if(random - i = 0) printf("正解"); return (0); }

  • 数当てゲームについて

    #include<stdio.h> #include<time.h> #include<stdlib.h> int main(void) { int num; int no; int max=11; int limit=0; srand(time(NULL)); /*乱数の値を初期化*/ no = rand() %1000; do{ printf("あと入力回数は%d回です。数字を入力してください。\n",max-limit); scanf("%d",&num); limit++; if(num>=1000 || num<=-1000) { printf("-999以上999以下の整数を入力してください。\n"); return -1; } if(num>no) { printf("\a大きいです。\n"); } else if(num<no) { printf("\a小さいです。\n"); } }while(no!=num && limit<max); if(no==num) { printf("正解です。\n"); printf("%d回で当たりました。\n",limit); } else { printf("残念です。当たりませんでした。\n"); printf("正解は%dでした。\n",no); } return 0; } これは、0以上999以下の整数を入力させて11回以内にランダムで 入力した値を当てさせるゲームです。 質問内容としては 「0以上999以下」→「-999以上999以下」に変更するにはどうすれば よいかです。 一部、「-999以上999以下」の値を入力してくださいとなっていますが 結局わからずにそのままになっているためです。 よろしくお願いいたします。

  • Excelで2次関数の頂点の座標を求める方法

    Excelで2次関数の最大値の頂点の座標を求める方法を教えて頂けないでしょうか。 y軸の値について最大値を出すためにはMax関数を使用すれば出ますが、その時のx軸の値を求める関数が分かりません。 例えば、以下のデータがあったとします。 Maxコマンドを使用すると最大値のy軸の値は「8」とでますが、そのときのx軸の値 が抽出できればと、この時のx軸の値は「3」と出したいのですが、関数が分かりません。 ご教授お願いいたします。 x y 0 0 1 2 2 4 3 8 4 4 5 2 6 0

  • 数学IAの問題です

    実変数xの定義域が|2x-√5|≦5で定義される二次関数 y=2x二乗+|3x+1|+|x-1|-2 1、この関数yがy=0となるxは【ア】個存在し、最小のxの値は【イ】であり、最大のxの値は【ウ】である 2、この関数yがy<0となるxの範囲は【エ】である 3、この関数yの最小値は【オ】であり、そのときのxの値は【カ】である 4、この関数yの最大値は【キ】であり、その時のxの値は【ク】である 細かいやり方を知りたいのでなるべく詳しく書いて頂けると嬉しいです やり方を写メしたものなどもとてもうれしいです よろしくお願いします

  • 数値の並びから関数をつくりたい

    ある物体の動きを数列にまとめました。 グラフにすると、きれいな放物線になります。 この数列を関数化するには、どうしたらよいでしょうか 等差数列等を使ってうまく関数式にできないでしょうか。 試行錯誤の結果以下のようになりそうですが、 Y = X ^ 5 / 200 + 30 (^記号はべき乗で、/は割るです) 根拠もなく導いたので、もっとよい式にしたいのです。 最終的には 以下の数値の並びから X が 11 の時の Y の値を 予測するのに、必要な関数の導きだしたいのです。 グラフで見ると、X=11 の時 Y は 800 くらいなのですが・・・ その手法だけでもけっこうです。よろしくお願いします。 X Y -- --- 1 30 2 55 3 70 4 80 5 85 6 120 7 150 8 180 9 260 10 520 X が 10より大きい時のYの求め方は? 以上 よろしくお願いします。

  • 1次関数の値の変化について教えて下さい。

    1、1次関数y=-5x+2について、xの値が4ずつ増加していくと、yの値はどうなりますか。 2、1次関数y=4x-1について、yの増加量が12の時のxの増加量を求めなさい。

  • Excelの関数

    y=ln(x)+ln(√y) という関数があります。この関数を、x=の形にすると x=e^{y-ln(√y)} になり、yの値が分かっている場合のExcelの関数は、 =EXP(y-0.5*LN(y)) になります。ちなみにこれを使って、y=5の時のxの値を求めると x=66.37 (少数第3位四捨五入しました) になります。 逆に、x=66.37の時のyの値をExcelで求めるにはどうやってやればよいのでしょうか? お分かりになる方、教えてください。よろしくお願いします。

  • 関数についての参考書の説明がよくわかりません

    2つの変数x、yについて xをある値に定めたとき、それに対して、ただ一つのyの値が定まるとき、yはxの関数であるといい y=f(x)と表す。 fはxの式のこと。 と書かれているのですが 意味がよくわかりません。 初めはfはyとxが関数であることのマークみたいに書かれていますが その下にfはxの式のことと書かれていて 頭が混乱しています。 いったいfとは何なのですか?

  • 整数XとYの関係式

    X,Yは7以上の整数です。 Xの値が7,8,9のとき、Yは7 Xの値が10,11,12のとき、Yは8 Xの値が13,14,15のとき、Yは9 ・・・・・ というようにXが3増えるごとにYは1づつ増えていきます。 この時、YをXの関数で表したいのですが、どのように表現されますか。