質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

6202閲覧

確率密度関数と確率分布関数の計算方法

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/05/22 23:54

ファイル処理を使って読み込んだエクセルファイルの数値を使って確率密度関数と確率分布関数の求め方を教えて下さい。

以下のようなエクセルファイルの数値を100個使い、1つのセルを1日として前日比を計算し、連続する4日中を範囲として、上昇なし、1日上昇、2日上昇、3日上昇、4日上昇のときの確率密度関数と確率分布関数を計算します。(最初の数値は前日比がないめ2,3,4,5を見て次に3,4,5,6と一個ずつずらし、97,98,99,100まで)
イメージ説明

最終的な出力結果は以下のような画像になります
イメージ説明

現状まで出来ているところです。

int main(void){

get_data();
return 0;
}
void get_data(void){
char fname[64];
int i,j,s;
double c;
FILE *fp;
i=0;

printf("ファイル名:");
scanf("%s",fname);

fp=fopen(fname,"rb");

if(fp==NULL){
printf("ファイルをオープンできません.\n");
exit(1);
}

printf("ファイルをオープンしました.\n");
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bongo

2017/05/23 01:05

ご質問は「最もフィットする確率分布関数・確率密度関数を求める方法は分かるが(あるいはおおよその見当が付くが)、それをCプログラムで実現する方法が分からない」というようなことでしょうか?
退会済みユーザー

退会済みユーザー

2017/05/23 01:11

そういうことになります
Bongo

2017/05/23 01:43

すいません、ご添付の2つ目の画像を見ると、「任意の連続上昇日数を与えると、対応する確率が出てくる関数を求める」というよりも、単純にこの100日のデータに関して「上昇なしなのは全体の○○%、1日連続は△△、...4日連続は□□」と「上昇なしなのは全体の●●%、連続上昇1日以下は▲▲、...4日以下は■■」ということを示す一覧を作るプログラムを作れ、という指示だと解釈した方がいい気がしてきました。前者と後者、どちらがより意図に沿っていますでしょうか?
退会済みユーザー

退会済みユーザー

2017/05/23 01:48

後者になります。分かりづらくて申し訳ありません。
ozwk

2017/05/23 02:11

"エクセルファイル"はcsvファイルですか?
guest

回答2

0

ベストアンサー

どうやら「確率密度関数・確率分布関数を求める」というより、この100個のデータを集計して連続上昇日数の各ケースの割合を出したいということととらえた方がよさそうですね。
アプローチとしては、まず「99個の前日比」を求めて、それぞれどのケースに該当するか判定して各ケースの数を数え(ヒストグラムを作るような感じでしょうか)、あとは各ケースの数を全体の数で割る...といったところでしょうか。
もしCでなくていいのなら、こういったことはkunaiさんのおっしゃるようにExcelが得意とするところでしょうね。

[追記]
まずExcel上で計算ロジックを検討してみて、それをベースにCプログラムを作るというのもアリかもしれません。

投稿2017/05/23 02:08

編集2017/05/23 02:15
Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Excelはテキストファイルではなくバイナリファイルなので、単純にファイルをopenしてreadしたところで、テキスト解釈するとわけのわからない文字列の羅列しか得られませんよ。
何故Cでやる必要があるのかわかりませんが、Excel内でNORMDIST関数とか使って算出するのではダメなのでしょうか。

投稿2017/05/23 01:40

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問