bartels@gmdzi.gmd.de (Eric Bartels) (05/08/91)
Hi folks ,
I've got a (perhaps silly) question concerning time-
constructability.
The problem is the following:
You are given a time-constructable function t() with
t(n) > n log* (n) /* iterated log */
Is now the function
a(n) = ceiling( t(n)^(1/3) )
time-constructable without having to calculate the t(n) ?
( the ceiling of a real number x denotes the smallest integer
greater or equal to x ).
I thought some time over this problem, but couldn't find an
easy solution ? Do you know if it's generally possible ?
thanx ,
Eric
Eric Bartels ,
GMD and Univ. of Bonnsethb@Morgan.COM (Seth Breidbart) (05/09/91)
In article <4680@gmdzi.gmd.de> bartels@gmdzi.gmd.de (Eric Bartels) writes: >You are given a time-constructable function t() with > t(n) > n log* (n) /* iterated log */ >Is now the function > a(n) = ceiling( t(n)^(1/3) ) >time-constructable without having to calculate the t(n) ? >( the ceiling of a real number x denotes the smallest integer >greater or equal to x ). In general, no. Let s(n) be a large function which can be computed in time <<s(n) (e.g. 2^n). Let f(n) be a 0/1 function that requires time s(n)^0.5 to compute. Define t(n) as: If f(n)=0 then s(n) else 8*s(n). Then a(n) is 2^(n/3) when f(n)=0, 2*2^(n/3) when f(n)=1. Since s(n) is easy to compute, if you could compute a(n) in time a(n), you could compute f(n) in time a(n). But a(n)<s(n)^0.5, so you can't. Seth sethb@fid.morgan.com