Javaの学習の旅(2):病気の犬1(論理控除)

 

はじめに:この記事は個人的なメモで、いくつかのコードの例については、私はアドバイスしてください、それが合理的であるかどうかわかりません。

 

 

  正午には、脳が一緒に皆を燃焼させるために、男が燃焼して燃やすことができない、私はそれが脳を燃やし感じ、学生の顔の質問を表示します。

  村の50人がありますが、それぞれの人が犬を持っています。病気の犬におけるこれらの50頭の犬では(病気は伝染性ではない)ので、病気の犬を特定する必要があります。誰もが唯一あなたが犬を見ることができない、彼らはうんざりしているかどうかを判断するために、他の49匹の犬を観察することができます。得られた結果は、病気の犬の所有者に通知しないように、交換後に観察されないことがあります。マスターは自分の家の病気の犬は彼の犬を撮影しようとしているが、彼の犬を撮影する一人一人が唯一の権利を計算したら、他の人の犬を殺す権利はありません。初日、次の日は何のショットを持っていない、三日目は、砲撃のバーストを来た、Q:いくつかの病気の犬はありますか?どのように外挿しましたか?

  あまりにも犬の残酷な殺害を考えると、私は治療のために病院にそれを変更しました。

  村の50人がありますが、それぞれの人が犬を持っています。病気の犬におけるこれらの50頭の犬では(病気は伝染性ではない)ので、病気の犬を特定する必要があります。誰もが唯一あなたが犬を見ることができない、彼らはうんざりしているかどうかを判断するために、他の49匹の犬を観察することができます。得られた結果は、病気の犬の所有者に通知しないように、交換後に観察されないことがあります。マスターは自分の家が病気治療のために病院に行く犬が、彼らの犬を治療するために、一人一人が唯一の権利である計算したら、他の人の犬を治療する権利はありません。初日は、翌日誰が犬の病院を、三日目には、犬を救うために送られた少数の人々は存在しませんだろう、と尋ねた:いくつかの病気の犬がありますか?どのように外挿しましたか?


  実際に、私は外に出たいか初めは、そのグループは答えをした同級生を持っていました。

  私は読んでいない答えを見つけました!

  ガン!それは私の知性を侮辱しないのですか?

  それでは、どのよう私は、長い間考えて、非常にひらめき恥じることができ、このレコードは、参考値です。

  実際には、犬、犬へのn網羅から強引な方法での答えは、しかし、私は本当に(または実際に私が読んで限られた能力を理解するために)理解していない各仮説のために導出されますそこで私は、再思考、派生。

 

  まず、犬の所有者は、犬は、クラス(クラスドッグ)は、クラス(クラス所有者)です。そして、カジュアルワーキング平均によると、私たちは、プロパティとメソッドクラスと犬の所有者のクラスを分析することでした。

  次のようにコードがあります

 

パブリック クラス所有者{
     // プロパティ]セクション
     // 犬の飼い主は犬を持っている必要があり、犬が公共になるよう、他のマスターを確認することができます
     。// しかし、犬の病気の状態は、犬の所有者が見ることができない
    公共犬犬。
     // 犬の所有者はまた、(代わりに文字列を使用するのではなく、設定別の車タイプ)犬のために病院に運ばれ、車を持って、専用車は間違いなく、わずかにある
    民間のString =ケーニグセグ「ケーニグセグ」;
     // 理由そこのマスターの多くは、単一の所有者は、自身の数、持っている必要があり、ある
    公共 int型ownerCodeを;
     //は、犬の病気の中に他の犬の数を見つけ、情報を共有することができないので、これは私有財産である
    プライベート int型 sickDogRecord = 0 ;
     // 自身が犬の病気かどうか、病気は病気ではないがfalseで、真実である
    公共 ブールdogIsSick; 
    
    // メソッド
     //犬の所有者は、他の犬の飼い主犬確認することができます
    公共 無効{checkDog(犬otherOwnerDog)を
         // ;犬が病気であれば、sickDog ++を
        IF {(犬の病気)
            sickDogRecord ++ ; 
        } 
    } 
    // 犬の所有者は彼らの犬かどうかを判断します病気の
    公共 IsSick(){
        // 彼らの犬であれば病気に...場合は、
        // dogIsSickは= trueに; 
    }
     // 殺す
    公共 のボイドkillDog(犬myselfDogを){
         //は方法の病院犬呼び出され 
        myselfDog。 beSendHospital(ケーニグセグ); //は病院ツール通過
         // this.dog = NULLを; 
    }
    
    公共の所有者(){ 
        
    } 
    // 构造方法重载
    公共の所有者(犬犬、int型コード、ブール病気){
         この .dog = 犬。
        この .ownerCode = コード。
        この .dogIsSick = 病気。
    } 
}
クラスの所有者

 

パブリック クラス犬{
     // プロパティ]セクション
     // 疾患状態は、何の病気、病気は病気ではないがfalseで、真ではありません
    ブール; SICK
     // 、多くの犬、犬には番号が付けていることがありますどのように多くの所有者
    の公共 int型のdogCodeを;
     // 方法一部
     // 犬は病院に運ばれた
    公共 のボイドbeSendHospital(){ 
        System.out.printlnは(この .dogCode +「いいえ犬の病院に送られました。」); 
    } 
    // 犬が病院に運ばれたが、オーバーロードしない
    公共 のボイドbeSendHospital(ツールString)を{ 
        System.out.println(この .dogCode + +ツール+「の犬の所有者の数である」「病院には。」); 
    } 
    パブリック犬(){
        
    } 
    // コンストラクタのオーバーロード
    公共犬(ブール SICK、int型コード){
         この .sick = SICKと、
        dogCode = コード; 
    } 
}
クラス犬

 

  次に、論理的で犬の所有者は、2つのクラス、病気の犬の所有者クラスA、無疾患の犬の所有者のクラスBに分け

 

導出開始

  カジュアルワーキングよると、「これらの50匹の犬の病気犬(病気は伝染性ではありません)という病気の犬を≥1。網羅最初からそう。

  系1:病気の犬≥1。

 

仮定します。

  私たちは、病気の犬を持っています。

  そして、Aの後に一つだけAのすべての所有者は、他の人の犬、チェックA.sickDogRecord = 0を

このとき、Aのために、彼は認識している系1、と彼は病気の他の犬を発見したので、病気の犬は犬を所有することができ、最初の日にA、それは犬の病院でなければなりません。

これは、カジュアルな作業の結果と矛盾しています。

  仮説は成り立ちません。

  当然の結果2:のみ1病気の犬、病気の犬の所有者、その後1日目になります確かに犬の病院での治療の場合。

 

前提条件B:

  病気の二匹の犬があります。

  だから、二つのオブジェクトクラス、最初のA1推論があります。

  A1、他の犬をチェックした後。A.sickDogRecord = 1、2 A1があります決定されます。

  ①:私の犬は病気になっていません

  A1认定自己的狗没病,但是他又看到了1只病狗,A1会认为,所有的狗狗里只有1只病狗。

  此时对于A1来说,根据题干“每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看”,他会觉得病狗的主人A2看到的狗全是健康的,于是会根据推论一推论二在第一天就将狗狗送医,但是第一天什么都没发生。

  判断①不成立。

  ②:我的狗有病

  判断1不成立,但是A1确实是看到了1条病狗,第一天又没有人送医,那唯一可以解释的就是A1看到的病狗的主人A2也看到了其他1条病狗,并且也觉得自己的狗不是病狗,所以A2没有在第一天就将狗狗送医治疗,于是在第二天,A1明白了一个道理:“我看到了一条病狗,这条病狗属于一个我不认识的人,暂时用X(A2)代替,而X不能看自己的狗,同时看到了另外一条病狗,那么X看到的只有自己这条自己看不到的狗,那么我的狗也是病狗!”于是,A1的狗有病,同时A2也以相同的推理判断出,他自己的狗也是病狗,于是,第二天,A1和A2同时将狗送医去治疗。

  但是,第二天实际上什么也没有发生!

  假设b不成立!

  推论3:若只有2条狗生病,那么病狗的主人在第2天一定会将狗送医治疗。

 

假设c:

  有三条狗生病

  那么A类的对象就有三个,继续对A1进行推理。

  A1在检查其他狗狗之后,A.sickDogRecord = 2,A1将会有两种判断:

 

  ①:A1的狗没有病

 

  A1认定自己的狗没病,但是他又看到了2只病狗,A1会认为,所有的狗狗里只有2只病狗。

 

  此时对于A1来说,根据题干“每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看”,他会觉得病狗的主人A2和A3各自能看到的只有一只病狗,于是会根据推论一、推论二推论三,在第二天就将狗狗送医,但是第二天也什么都没发生。

 

  判断①不成立。

 

  ②:A1的狗有病

  判断1不成立,但是A1确实是看到了2条病狗,第二天也没有人送医,那唯一可以解释的就是A1看到的病狗的主人A2和A3也同时看到了其他2条病狗,并且也觉得自己的狗不是病狗,所以A2和A3没有在第二天就将狗狗送医治疗,于是在第三天,A1明白了一个道理:“我看到了2条病狗,这2条病狗属于2个我不认识的人,暂时用X(A2)和Y(A3)代替,而X和Y不能看自己的狗,同时他们也各自看到了另外2条病狗,X看到的是Y的病狗和另外一条病狗z,Y看到的是X的病狗和病狗z,而我看到的只有X和Y的病狗没有其他人的病狗,并且我看不到自己的狗,那么我的狗肯定就是那条x,也就是说我的狗也是病狗!”于是,A1的狗有病,同时A2和A3也以相同的推理判断出,他自己的狗也是病狗,于是,第三天,A1、A2和A3同时将狗送医去治疗。

  假设c成立!答案就是病狗有3条。

  推论4:若只有3条狗生病,那么病狗的主人在第3天一定会将狗送医治疗。

  综上所述,依次类推,最后可以得到结论:

  有n条狗生病,那么病狗的主人就会在第n天将狗送医治疗!

 

  整个逻辑推理已经结束,但是我最想做的事还没有做。

  接下里的目标就是,将题目例化成java类,通过设计类属性和方法,类之间的关系,实现整个题目的逻辑推理和元素关系,敬请期待!

 

おすすめ

転載: www.cnblogs.com/Azir-s-soldier/p/11461976.html