プロが教えるわが家の防犯対策術!

こんにちは

パズル、数学、プログラミングに類する質問です。

ここに7つのアイテムがあります。
例えば、帽子、シャツ、ネクタイ、パンツ、ズボン、靴下、靴とします。
ある人が、これらのアイテムから任意のものを選んで身につけます。

各アイテムは1つずつしかないので、1つを使うとなくなってしまいます(身につけられた状態になってしまいます)。つまり、帽子を2つ身につけたり、靴下を二重にはいたりすることはできません。一方で、シャツを着ないでネクタイを、パンツをはかないでズボンを、靴下をはかないで靴を履くことはできます。組み合わせと個数は自由です。

数式などを使って、現在この人が身につけているアイテムが何かを調べたいと考えています。

例えば、帽子をかぶると + 10、シャツを着ると + 25 と言った具合に数値が足されたり掛け合わされていきます。あ、もちろんあなたはこの合計の数値を知ることができます。

さて、合計の数値を見て、そこから帽子を身につけているか、ズボンを身につけているかなどを知る方法はあるでしょうか?

たとえば、合計値を250で割ってあまりが偶数なら帽子を身につけているとか、7つのアイテムを個別に識別する何らかの式ができるのではないかと思うのです。式は1行でなくてもいいですし、結果を見て分岐していく方法でも構いません。時間がかかっても7つのアイテムが身につけられているか、いないかを判別したいと思います。

A 回答 (4件)

一番簡単な方法は、7つのアイテムの N =1~7 に対して、



  XN = 10^N

という番号を割り振ることです。

 身に着けているものの XN の合計をとれば、何桁目が「1」かで、身に着けているものが分かります。
    • good
    • 0
この回答へのお礼

ファ!

すごいですね。よくわかりました。コンピュータのビットみたいですね、これ。
やりたいことも実現できました!

お礼日時:2015/03/20 15:04

国語の問題(^^)。


余計な修飾語はすべて取り除くと・・聞かれている事は
>7つのアイテムがあり、それぞれ独立して身につけるかつけないかをあらわすには
に過ぎないことは読取れますか???。数学力の左は国語力の差と言われる所以判りますね。
7つのそれぞれについて○か×しかないのですから、2⁷ = 128 より大きい数は必要ないことわかりますよね。言い換えると128までの数字ですべての状況を表せるということです。

    ネ
  シ ク パ ズ
帽 ャ タ ン ボ 靴
子 ツ イ ツ ン 下 靴
0 0 0 0 0 0 0  ( 0)何も身につけていない
1 1 1 1 1 1 1  (127)すべて身につけている
・ ・ ・ ・ ・ ・ ・
1 0 1 0 0 0 1  ( 81)帽子とネクタイと靴

例題として、99なら
1 1 0 0 0 1 1 帽子とシャツと靴下と靴を身につけている。

(計算方法) 99を例にすると
ある数の2で割って1余る(奇数)なら靴を履いている。99/2 = 49.5 帽子○
その商の整数部を2で割って1余る(奇数)なら靴下はいている。49/2 = 24.5 靴下○
その商の整数部を2で割って1余る(奇数)ならズボンはいている。24/2 = 12 ズボン×
その商の整数部を2で割って1余る(奇数)ならパンツはいている。12/2 = 6 パンツ×
その商の整数部を2で割って1余る(奇数)なネクタイ締めている。 6/2 = 3 ネクタイ×
その商の整数部を2で割って1余る(奇数)ならシャツ着ている。3/2 = 1.5 シャツ○
その商の整数部を2で割って1余る(奇数)なら帽子かぶってる。1/1 = 0.5 帽子○

ある数から64を引ければ、帽子     99 - 64 = 35 帽子○
その剰余あまりから32引ければ、シャツ 35 - 32 = 3 シャツ
その剰余あまりから16引ければ、ネクタイ
その剰余あまりから8引ければ、パンツ
その剰余あまりから4引ければ、ズボン
その剰余あまりから2引ければ、靴下   3-2 = 1 靴下
その剰余あまりがあれば、靴       1-1= 0 靴
    • good
    • 0
この回答へのお礼

ありがとうございます!
残念ながら、私の職業はその国語的な何かなんですね。。。しかし数学力はからきしです。

7種類の0と1で、On/Offが表せること、それが2進数になっていることはよく分かりました。

どの数字でも、2で割ったときに1余れば(つまり奇数なら)靴をはいているということですね。
これは、靴下が「1」で、それ以外が必ず偶数なので、合計値が奇数と言うことはかならず靴下ははいている、わけですね。

しかし、その商の整数部を取ったものを2で割る点が微妙に分からないのです。
端数を取っているということは、0.5 の 2 つ分で1(=靴)を脱がした状態で、98 /4 をしているのと同じことなんですか? ここであまりが出れば靴を履いている、ということでしょうか。
かといって、99を4で割っても24.75なわけで・・。うーむ。
ある数値から一気にパンツの有無を割り出す式はあるのでしょうか?

お礼日時:2015/03/20 19:37

No.2です。

ついでに言うと
帽子かぶっていたら、64加える。
シャツ着てたら32加える。
ネクタイしてたら16加える。
パツンはいてたら8加える。・・・ズボンはいてたら見えないけどどうする?
ズボンはいてたら4加える。
靴下はいてたら2加える
靴はいてたら1加える。
    • good
    • 1
この回答へのお礼

ありがとうございます。
これは、7個の0/1と対応している、ということですね。
数って神秘ですね。

お礼日時:2015/03/20 19:38

>これは、7個の0/1と対応している、ということですね。


>数って神秘ですね。
 いえ見慣れている10進数も、各桁の0~9に対応しているのですから・・不思議でもなんでもない。
>しかし、その商の整数部を取ったものを2で割る点が微妙に分からないのです。
 見慣れている10進数は、10で割って=一桁ずらしたとき小数点一桁に数があればその桁には数がある。基数で割ると言う事は下から一桁ずつ調べているということ。

>ある数値から一気にパンツの有無を割り出す式はあるのでしょうか?
二進数に直して、桁をチェックするのが一番早い。

 また、当然ですがその2進数を10進数に直したものを2⁽ⁿ⁻¹⁾で割って、1桁目が奇数であればあり。
 99/2⁶ = 【1】.546875 帽子あり
 99/2⁵ = 【3】.09375  シャツあり
 99/2⁴ = 【6】.1875   ネクタイなし
 99/2³ = 1【2】.375   パンツなし
 99/2² = 2【4】.75   ズボンなし 
 99/2¹ = 4【9】.5    靴下あり
 99/2⁰ = 9【9】.0    靴あり

これって10進数で、一桁ずつ調べて0~9の何れかを見ている作業とまったく同じ。
二進数だと偶数か奇数を調べれば良いのですからね。

「帽子、シャツ、ネクタイ、パンツ、ズボン、靴下、靴を放置しているか、鞄に入れたか、身につけているかの三通りなら3進法」
「帽子、シャツ、ネクタイ、パンツ、ズボン、靴下、靴を0~9枚持ってるかなら10進数」
そんなに難しく考えなくて良いですよ。

数学できる人は国語力がないと・・・
「7種類のアイテムを身につけるか否か」という単純な話を
_____________
 各アイテムは1つずつしかないので、1つを使うとなくなってしまいます(身につけられた状態になってしまいます)。つまり、帽子を2つ身につけたり、靴下を二重にはいたりすることはできません。一方で、シャツを着ないでネクタイを、パンツをはかないでズボンを、靴下をはかないで靴を履くことはできます。組み合わせと個数は自由です。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 こんな回りくどい言い方で言うことになる。

 逆に回りくどく書かれていたり話されたら意味が読み取れないことになる。

「7つのアイテムを身につけるか否か」
と読取れさえすれば、簡単な質問だと、何をすればよいか、わかったのでは???
    • good
    • 0

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