ページ 11

2つの文字列がどのくらい合っているかの割合を求めたいです

Posted: 2018年7月17日(火) 13:14
by 950417jjjjjjjjjj
[1]
1.2つのtxtにはそれぞれa,bの文字列があります。
例)d.txt aaaaaabbbbbbaabbbbbbbbbaaaaaaaaaaaaa
  t.txt aaaabbbbbbbbaaaaaabbbbbbbbbbbaaaaaab
これらのテキストを読み込み、1に対してどのくらい文字が同じになっているのかを何%で表したいです。
2.[code]
#include <stdio.h>

int main(void)
{
int i;
FILE *file;
file = fopen("d.txt","r");
fscanf(file,"%d",&i);
fclose(file);
printf("%d\n",i);
return 0;
}
[/code]

3.2つのtxtの読み込みはどうしたらいいのでしょうか。
 2つのtxtに対しての文字の合っている割合はどう処理また、計算すればいいですか。

[2]環境
1.OS:Linux
2.TeraTerm ?

[3]
プログラミングは初心者です。まだ始めたばかりです。

Re: 2つの文字列がどのくらい合っているかの割合を求めたいです

Posted: 2018年7月17日(火) 19:06
by にほ
codeの周りのかっこが全角になっているので、コードが正しく表示されていませんね。記事の送信の際はプレビューして問題ないか確認してから送信することをお勧めします。

これらのテキストを読み込み、1に対してどのくらい文字が同じになっているのかを何%で表したいです。
やりたいことはだいたいわかりますが、仕様書としては不十分なところがあるように思えます。例えば、二つのテキストの文字列が違う場合、どのような処理をするつもりですか?(短い方に合わせる or 長い方に合わせる etc...)

2つのtxtの読み込みはどうしたらいいのでしょうか。
提示されたコードではd.txtしか読み込んでいないようなので、d.txt、t.txtそれぞれ読み込み処理を行ってください。

2つのtxtに対しての文字の合っている割合はどう処理また、計算すればいいですか。
まず、文字を読み込んで比較するためには文字列を格納する必要があるので、char型の配列が必要です。読み込んだchar型の値に対して、t.txtの配列とd.txtの配列についてそれぞれ比較すれば大丈夫そうですね。C言語であれば、

コード:

if (str[0] == str[1]) {
のようにして比較することができると思います。
あとは、読み込んだ全体数と一致していた数を使えば割合が求められるはずです。

Re: 2つの文字列がどのくらい合っているかの割合を求めたいです

Posted: 2018年7月18日(水) 01:48
by box
例)d.txt aaaaaabbbbbbaabbbbbbbbbaaaaaaaaaaaaa
  t.txt aaaabbbbbbbbaaaaaabbbbbbbbbbbaaaaaab
この例の場合、何%としたいのですか?
仮にコンピューターを使わずに手計算するとしたら、どういう手順を踏みますか?

Re: 2つの文字列がどのくらい合っているかの割合を求めたいです

Posted: 2018年7月18日(水) 01:54
by box
どうしてさっきみたいなことを聞いたかというと、例えば
ab
ba
という2つの文字列を比べた結果を何%にしたいのかな?という疑問がわいたからです。
先頭から1文字ずつ比べる方法だと全く一致しませんが、
aの数とbの数という観点に立つと、完全に一致しますよね。
なので、
2つのtxtに対しての文字の合っている割合はどう処理また、計算すればいいですか。
という問いかけに対しては、質問者さんはどうしたいのですか?という逆質問となります。