craftlk 发表于 2014-10-9 08:35

nlogn=36000 这种问题怎么估算n的大小呢?求助~~~

多谢大神!!!

mingtingqing 发表于 2014-10-9 09:20

数据结构中的logn大多是以2为底的,并不是10,你如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。希望可以帮助到你

craftlk 发表于 2014-10-11 17:59

mingtingqing 发表于 2014-10-9 09:20 static/image/common/back.gif
数据结构中的logn大多是以2为底的,并不是10,你如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其 ...

意思是我先估算一个n的范围,然后用二分法在这个范围里试吗?  具体怎么做呢

liwenhui 发表于 2017-6-5 15:56

化成两个最优化问题,一个求最大值,一个求最小值,并且决策变量都是整数。LINGO上实现它:MODEL:

SUBMODEL NMIN:
MAX = N_MIN;
N_MIN * @LOG( N_MIN) < 36000;
@GIN( N_MIN);
ENDSUBMODEL

SUBMODEL NMAX:
MIN = N_MAX;
N_MAX * @LOG( N_MAX) > 36000;
@GIN( N_MAX);
ENDSUBMODEL

CALC:
@SET( 'GLOBAL', 1);
@SOLVE( NMIN);
@SOLVE( NMAX);
ENDCALC

END求得结果:Global optimal solution found.
  Objective value:                              4302.000
  Objective bound:                              4302.000
  Infeasibilities:                              0.000000
  Extended solver steps:                               1
  Total solver iterations:                            57


                                           Variable           Value
                                              N_MIN        4302.000
                                              N_MAX        0.000000

                                                Row    Slack or Surplus
                                                  1        4302.000
                                                  2        5.874497

  Global optimal solution found.
  Objective value:                              4303.000
  Objective bound:                              4303.000
  Infeasibilities:                              0.000000
  Extended solver steps:                               1
  Total solver iterations:                            41


                                           Variable           Value
                                              N_MIN        0.000000
                                              N_MAX        4303.000

                                                Row    Slack or Surplus
                                                  1        4303.000
                                                  2        3.492454
即4302与4303之间。


页: [1]
查看完整版本: nlogn=36000 这种问题怎么估算n的大小呢?求助~~~