프로그래밍 기법을 정량화 - 수학 최적의 솔루션

에서 ABC 가져 오기 ABCMeta, AbstractMethod
 가져 오기 여섯
 가져 오기 NP AS NumPy와
 가져 오기 팬더 AS PD
 가져 오기 PLT의 AS matplotlib.pyplot 

#의 모두 평균 수명은 75 세, 75 * 365 = 27,375일입니다 
K_INIT_LIVING_DAYS = 27,375 클래스 는 Person (객체) :
     "" " 
        인간 ", "" DEF __init__ (자기가) :
         #은 보통 사람이 살 수 초기화 생활 
        self.living = K_INIT_LIVING_DAYS
         # 행복 지수 초기화 
        self.happiness = 0
         #이 부의 값을 초기화 
        self.wealth = 0
        


    

     # 초기화 명성 권한 
        = self.fame 0
         # 처음 몇 일에서 살아 
        self.living_day = 0 

    DEF의 live_one_day가 (자기가 추구) :
         "" " 
        만 하루가 추구 추구 할 수 있습니다 당신이 제공하는 오늘 무엇을 추구 결정 무엇 
        BaseSeekDay 작성 노력할 것이다 속하는 유형 
        : PARAM을 추구 : 
        : 반환 : 
        "" " 
        #의 각각의 고유 한 BaseSeekDay 클래스는 오늘날의 수확 달성하기 위해 구현 될 것입니다 do_seek_day 전화 
        consume_living을, 행복, 부, 명예가 = seek.do_seek_day ( )
         # 일상 생활 마이너스 소비, 일부는 이전의 삶의 향상을 추구합니다 
        self.living을 - = consume_living
         #은 행복 지수가 축적 된 얻을 추구 
        self.happiness + = 행복을
        # 자산의 탐색 결과 축적 
        self.wealth + = 자산
         #은 전원의 명성을 축적 얻을 탐색 
        self.fame + = 명예의 전당
         # 살아이 일 후에 
        self.living_day + = 1 개 클래스 BaseSeekDay (six.with_metaclass (ABCMeta, 개체)) :
     DEF의 __init__ (자기) :
         # 생명의 일정 추구의 각 매일 소비 
        self.living_consume = 0 # 행복의 매일 지수 일정 추구 
        self.happiness_base = 0 # 부의 축적 상수 추구하는 매일 
        self.wealth_base = 0
         # 각 추구 축적 상수 일일 명예 항 
        self.fame_base = 0 #을


 

        

        

        삶의 매일 소비 변수 요인 시퀀스의 추구 
        self.living_factor = [0] 

        # 행복 지수 변수 요인 시퀀스 추구하는 매일 
        = self.happiness_factor를 [0] 

        #을 부의 축적 변수 염기 서열을 추구하기 위해 매일 
        자신을 .wealth_factor = [0]
         # 청구항 명성의 일 추구 변수 시퀀스 당 
        self.fame_factor = [0] 

        #는 일수 수명이 추구 
        self.do_seek_day_cnt를 = 0
         # 서브 클래스의 상수와 변수 시퀀스 설정 
        자체 ._init_self ()가 

    @abstractmethod 
    DEF _init_self (자체, * 인수, ** kwargs로 일) :
         #의 서브 클래스가 구현 그의 삶의 일정한 소비를 설정해야합니다, 행복 지수 상수 상수 설정 
        패스 

    @abstractmethod 
    DEF를_gen_living_days (자체, * 인수, ** kwargs로) :
         #의 서브 클래스가 구현해야하는 설정, 자신의 변수 순서 
        패스 

    DEF의 do_seek_day (자기) :
         "" " 
        추구 매일 구체적으로 탐색 
        : 반환 : 
        " "" 
        #의 생활 소비 = living_consume : 일정한 소비 * happiness_factor : 가변 순서 
        IF self.do_seek_day_cnt> = LEN (self.living_factor) :
             #가 LEN (self.living_factor)를 초과가, 최종 living_factor [-1] 얻어 
            consume_living = \ 
                self.living_factor를 [ - 1] * self.living_consume
         다른 :
             # 각 클래스의 사용자 지정이 일정한 소비 생활뿐만 아니라 living_factor을 추구, 같은 
            #건강 값의 HealthSeekDay 추구, 즉 음의 순서 living_factor에서입니다 -> 값 
            # 각각의 결과로, 자신의 시퀀스 기능의 속도와 길이를 다양 living_factor 각 서브 클래스 
            #의 수의 추구와 소비 생활의 추구로 변화 
            consume_living = self.living_factor [self.do_seek_day_cnt] \
                              * self.living_consume의
         #의 행복 인덱스 = happiness_base : 음 상수 * happiness_factor : 가변 순서 
        IF self.do_seek_day_cnt> = LEN은 (는 self.happiness_factor) :
             #가 LEN (self.happiness_factor)을 초과 마지막으로,가 얻어 
            #을 N-> 0이므로 happiness_factor [-1] 0 = 값 happiness_factor 때문에 
            #은 즉, 물건의 추구의 수가 행복 후에 과다하게하지 않는 
            행복 = self.happiness_factor [
                             -1] *self.happiness_base
         다른 :
             #에게 행복 지수의 추구가 일정하게 사용자 정의 할 수 각 클래스를, 그리고 happiness_factor의 
            #은 높은에서 일반적으로 happiness_factor 서브 클래스를 정의 -> 낮은 변동성 
            행복 = self.happiness_factor [ 
                            self.do_seek_day_cnt] * self.happiness_base의
         #의 재산 축적 = wealth_base : 축적 상수 * wealth_factor : 가변 순서 
        IF self.do_seek_day_cnt> = LEN (self.wealth_factor) :
             #가 최종 취할 렌 (self.wealth_factor)를 초과 
            자산 self.wealth_factor = [-1] * 셀프. wealth_base
         다른 :
             # 각 클래스는 부의 지수 일정 및 wealth_factor의 추구를 사용자 정의 할 수
            = 웰스 self.wealth_factor [ 
                         self.do_seek_day_cnt] * self.wealth_base의
         #의 제 축적 = fame_base : 축적 상수 *의 fame_factor : 가변 순서 
        IF self.do_seek_day_cnt> = LEN은 (는 self.fame_factor)
             # 1 , LEN (self.fame_factor)을 초과 마지막으로,가 얻어 
            [-1] * = 명예 self.fame_factor self.fame_base
         다른 :
             # 각 정의 클래스 인덱스 명성이 상수 항을 추구하고 fame_factor의 
            명성 = self.fame_factor [ 
                       self.do_seek_day_cnt] * self.fame_base의
         # 이 세상 + 1의 일수의 추구
        + = 1 self.do_seek_day_cnt에 #이 하는 행복, 부, 명성 권리를 얻기 위해, 삶의 하루 소비의 추구를 반환 반환 consume_living, 행복, 부, 명예 DEF의 regular_mm (그룹) :
     #의 최소 - 최대 표준화 반환 (그룹 - 그룹. 분 ()) / (group.max () - group.min ()) 클래스 HealthSeekDay (BaseSeekDay) :
     "" " 
        HealthSeekDay 하루의 건강과 장수를 추구 : 
        뭔가에 관심 피트니스, 여행, 엔터테인먼트, :의 이미지입니다. 
        초록 : 건강과 장수의 추구. "" " DEF _init_self (자동) :
         # 상수 소비의 일상 생활 = 1, 하루 나타내는 
        self.living_consume = 1 # 행복한 일 지수 상수 = 1 
        self.happiness_base = 1 개 # 세트 변수 순서
        
        
        
        

    



    

    
        
        
        self._gen_living_days () 

    DEF의 _gen_living_days (자기) :
         #은 happiness_factor 1> 0으로 값을 다음과 같은 순서 때문에, 단지 12,000의 시퀀스를 생성 
        # 단순히 생명을 소비하는 것보다 12,000 배 더 큰 추구, 행복 지수를 증가시키지 않습니다 
        # 즉, 더 자주 더 완전히 행복이 발생하지 때까지 행복, 더 낮은지고, 하나의 일을하기로 
        일 = np.arange (1, 12000 )
         # 기본 기능 선택 SQRT을, 서열 변화의 속도에 영향 
        = living_days NP합니다. SQRT (일) 

        "" " 
            생활 추구 초 가변 인자 서열 -1-> 1, 즉 의해 생활 소비 값 
            수가 삶의 추구에 성장하여, 마이너스 성장에 의해 소비 및 수명을 연장 소비는 흑자 전환 
            에도 사람이 운동을 매일하는 경우, 매일 영양 보충제를 먹고, 여전히 자연의 죽음이 있기 때문에 수를 
            하루 
        "" ". 
        #의 목적 * 2-1 : regular_mm 0-1 사이, HealthSeekDay 결과 -1,1 사이
        = regular_mm self.living_factor (living_days) * 2 개 --1 #의 [:: --1] 1-0 사이 결과 : 0-> 1> 0 1- 변환 
        self.happiness_factor = regular_mm을 (일) : - 1 ] #은 나에게 당신의 삶의 이야기를 초기화 : HealthSeekDay 
나 = 인격 ()
 #이 건강과 장수 행복의 추구 초기화 
seek_health = HealthSeekDay ()
 그동안 me.living> : 0
     #을 오랫동안 그는, 건강과 장수 행복을 추구하는 삶으로     me.live_one_day (seek_health를 ) 인쇄 ( ' 행복의 추구가 길고 건강한 생활을 {} 년 살고, 행복 지수 {} {} 부의 축적, 명성 능력을 {} ' .format 
      (라운드 (me.living_day / 365, 2), 원형 (me.happiness, 2 ) 
       me.wealth, me.fame))
        
        
        




       
       
plt.plot (seek_health.living_factor * seek_health.living_consume) 
plt.plot (seek_health.happiness_factor * seek_health.happiness_base) 
plt.legend ([ ' living_factor ' , ' happiness_factor ' , LOC = ' 최상의 ' )

 

추천

출처www.cnblogs.com/fangbei/p/11521580.html