• ベストアンサー

情報圧縮の問題

情報科学の問題なのですが、分からないのでどなたかお助けください。 各日の天気は,それまでの天気と無関係に晴れが 80%, 雨が 20% の確率で起きるものと仮定する。 晴れを1,雨を0 とした時の1年間の天気を示した365ビットの列を, 3日分づつを塊にすることにより,より短い文字列に表現する方法を考えよ。 またその方法での,圧縮率を求めよ。 111、110、101、100…と3日分ずつだと8種類の文字列のどれかになりますよね。 それを例えば111=1というふうに表現する事に決めたりすればいいのでしょうか? いまいちよく分からないのでお助けください。

  • 科学
  • 回答数3
  • ありがとう数5

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

  • ベストアンサー
  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.1

> 111、110、101、100…と3日分ずつだと8種類の文字列のどれかになりますよね。 > それを例えば111=1というふうに表現する事に決めたりすればいいのでしょうか? そうですね。そんな感じです。 ただし、あとでちゃんと復号化できるようにしないとだめです。 例えば111に「1」を割り当て、110に「10」、101に「01」と割り当てたとします。 ここで111101を圧縮すると「101」となりますが、 これを復号化すると、111101と110111の2通りの解釈ができてしまいます。 こんなことが起きないように工夫する必要があります。

参考URL:
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%95%E3%83%9E%E3%83%B3%E7%AC%A6%E5%8F%B7
taka0077
質問者

補足

回答いただきありがとうございます。 なるほど、復号化まで考えないといけないのですね。 それでちょっと割り当てを考えてみたのですが 111…0 011、101、110…100,101,110 001,010,100…11100,11101,11110 000…11111 というふうに考えたのですが、もっと短く出来るような割りふりがあるのでしょうか?

その他の回答 (2)

回答No.3

> というふうに考えたのですが、もっと短く出来るような割りふりがあるのでしょうか? 000~111の8種類だとそれが最適ですね。 8種類を2個組み合わせて64種類にすると、ちょっとだけ平均圧縮率がよくなりますが・・・手作業では難しいでしょう。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

見た感じはそれで最適っぽいです. まじめにがんばるなら Huffman 符号を作る... のかな?

関連するQ&A

  • 確率の問題です。解説をお願いします。

    はじめまして。 下記の問題の解説をお願いします。 --------------------------------------------------------  翌日の天候を決める処理を以下のように定義する。  ++++++++++++++++++++++++++++++++++++++++++++++++  A.「晴れ」の翌日は「晴れ」か「くもり」である。  B.「くもり」の翌日は「晴れ」か「くもり」か「雨」である。  C.「雨」の翌日は「くもり」か「雨」である。  晴れカード 12 枚、くもりカード 10 枚、雨カード 8 枚からなる 30 枚のカードがあり、  本日の天候から見て、翌日の天候にならないカードを全部抜いて、この束から無作為に 5 枚を引く。  引いたカードのうち最も多いものを翌日の天候とする。  最多のものが複数種類ある場合は、その中より等分の確率で再抽選する。  ++++++++++++++++++++++++++++++++++++++++++++++++ (いずれも計算過程を明示する事、有効数字は3桁とする) (1)現在の天気を「晴れ」とする。翌日の天気が「くもり」である確率を求めよ。 (2)現在の天気を「晴れ」とする。2日目の天気が「くもり」である確率を求めよ。 (3)現在の天気を「晴れ」とする。3日目の天気が「雨」である確率を求めよ。 (4)「晴れ」→「晴れ」の確率を求めよ。 (5)「晴れ」→「くもり」の確率を求めよ。 (6)「晴れ」→「雨」の確率を求めよ。 (7)「くもり」→「晴れ」の確率を求めよ。 (8)「くもり」→「くもり」の確率を求めよ。 (9)「くもり」→「雨」の確率を求めよ。 (10)「雨」→「晴れ」の確率を求めよ。 (11)「雨」→「くもり」の確率を求めよ。 (12)「雨」→「雨」の確率を求めよ。 (13)「晴れ」「くもり」「雨」の確率を、それぞれx,y,zとする。     x,y,zを使って翌日に「晴れ」「くもり」「雨」が出現する確率を記述せよ。 (14)これを無限回繰り返した時、「晴れ」「くもり」「雨」の出現する確率を求めよ。

  • 数学問題確率

    明日の天気によりお弁当が500個売れるか決まる。お弁当が500個売れる確率は晴れの日に0.7で曇りの日は0.5で雨の日は0.2である。天気予報では明日は曇りになると予想している。一方この天気予報が当たる確率は0.7で過去のデータからこの季節では晴れが0.5で曇りが0.3で雨の日が0.2であった明日はなんかのお弁当を作るための材料を仕入れるべきか

  • 確率の求め方(天気予報の確率を利用して)

    確率の求め方について教えてください(>_<) 天気予報は下り坂で、雨の確率は午前中20%、午後は50%だとします。 <午前-午後が>  (1)晴れ-晴れ (2)晴れ-雨 (3)雨-晴れ (4)雨-雨 条件より、雨の降らない確率は、午前80%、午後は50%でいいのですか??もしそうだとして、それぞれの確率は、 (1)(80/100)×(50/100)=40/100 (2)(80/100)×(50/100)=40/100 (3)(20/100)×(50/100)=10/100 (3)(20/100)×(50/100)=10/100  で良いのですか??それともそれぞれの確率をかけるのではなく足し算ですか??  よろしくお願いします。

  • ハフマン符号化による圧縮

    1と0からだけでできた100文字の列を4ビットごとに区切ってハフマン符号化による圧縮したいのですが、いまいちわかりません。どなたか教えてください。

    • ベストアンサー
    • Java
  • Excel: セルに画像を表示させたい

    A列に 「晴れ」「曇り」「雨」 ...のような文字が入力されています。 この時、A列が「晴れ」なら晴れの画像を、「雨」なら雨の画像をB列に表示させる方法がありますでしょうか。

  • Excel VBA:特定の文字列以降(あるいは以前)のテキストをすべて取得する方法

    任意の長さのテキスト文があるとします。 str0 = "今日の天気は晴れです。" この文で、「天気は」という文字列以前、あるいは以降の文をすべて取得するにはどうしたらよいでしょうか。 最終的な目的は「晴れ」という文字列を抜き出したいだけですので、別の方法があればそちらでも構いません。ただし、その文に「晴れ」という文字が入っているかどうかは取得前は不明ですので、「晴れ」を検索語にする方法ではありません。また、「天気は」、「です。」の文字は確実に文章に含まれているのですが、何文字目にあるかということも不明の場合を想定しています。 次のようなプロセスを考えています。 1.str0から「天気は」以降の文を取得 → str1 = "晴れです。" 2.str1から「です。」以前の文を取得 → str2 = "晴れ"

  • 数学(確率)の質問です

    数学の確率に関する質問です。非常に初歩的なとこでつまづいているのですが、どなたかわかりやすく解説いただけると嬉しいです。 以下問題です。 ある都市のショッピングモールに併設された駐車場の利用状況を調べたところ、この駐車場が満車になる確率は晴れの日が1/6、雨の日が2/3であるという。また、この都市は2/3の確率で晴れ、1/3の確率で雨であることがわかっている。無作為に選んだある日に、この駐車場が満車となっていることがわかった時、この日の天気が晴れであった確率はいくらか。 答え、1/3 私はまず、 無作為に選んだ日が晴れである確率が2/3で、晴れの日に満車である確率が1/6なので、1/6 / 2/3で、1/4としました。 しかし違っていたので、では晴れの日に満車になる確率と雨の日に満車になる確率(=満車になる確率)を、1/6×2/3で1/9とし、これを晴れになる確率である2/3で割ったのですが、これも1/6で誤答でした。 解説を見ると、「求める確率は「満車で、かつ晴れである確率/満車となる確率」で求められる」とあり、満車となる確率は「2/3×1/6 + 1/3×2/3(晴れでかつ満車+雨でかつ満車)」となり、満車で且つ晴れである確率は「2/3×1/6=1/9」となるために、求める確率は「1/9 / 1/3=1/3」である。というものでした。 ここで質問です。 ❶満車となる確率は「2/3×1/6 + 1/3×2/3(晴れでかつ満車+雨でかつ満車)」 満車で且つ晴れである確率は「2/3×1/6=1/9」 とありますが、問題文に「満車になる確率は晴れの日が1/6、雨の日が2/3」とあるのに、なぜさらに晴れの日になる確率である2/3(雨の日になる確率である1/3)を掛けなければならないのですか? (1/6ですでに「晴れ、かつ満車の確率」では?) ❷答えが1/3だとすれば、私の求めた1/4、1/6という確率は何を指しているのでしょう。それとも全くトンチンカンな数字なのでしょうか。 以上お知恵を貸していただけると幸いです。よろしくお願いします。

  • 雨の降る確率2

    雨の降る確率が1/3の場合に、『7日間のうちに4日以上雨の降る確率』はどのように考えたらよいのでしょうか? (雨の降る確率は独立に決まることを仮定しています) 雨・晴れの組み合わせが、3の7乗=2187通りとして 4日以上雨ということは、3日以下しか雨の降らない組み合わせを探してそれを差し引くということでしょうか? ・・・・・・う~~ん 3日以下の組み合わせをどのような考えで計算すればよろしいでしょうか? よろしくお願いします。

  • 英語で天気の晴れ、曇り、雨は何と言いますか?

    英語で天気の晴れ、曇り、雨は何と言いますか? 天気の頭文字がFから始まる天気って何ですか?

  • 複数文字列から共通文字列の抽出処置

    お世話になっています。 標題の件に付いて教えて頂きたく質問板に投稿させて頂きました。 以下の様な複数の文字列があり各文字列で共通の文字列のみを抽出するといった処理を行いたいのですが可能でしょうか?? 例(1) 赤鉛筆を11/1に購入 青鉛筆を11/5に購入 黄鉛筆を11/20に購入 →鉛筆を購入 例(2) 今日の天気は晴れです 今日の天気は曇りです 今日の天気は雨です →今日の天気はです という様な感じです。 文字列には決まったパターン等はありません。 申し訳ありませんがご教授下さい。 よろしくお願い致します。