Arrange the following functions in increasing order of growth rate (with g(n) following f(n) in your list if and only if f(n)=O(g(n))).

a)2^2^n
b)2^n^2
c)n^2 * log(n)
d)n
e)n^2^n

To arrange the functions in increasing order of growth rate, we need to compare their growth rates and determine which function grows slower or faster than the others. In other words, we need to find the order of the functions based on their growth rate.

Let's compare the functions one by one:

a) 2^(2^n): This function has an exponential growth rate, with each subsequent power of 2 being raised to a power of 2. As n increases, the growth rate becomes exceptionally fast. You can observe that for small values of n, the function grows quickly. For example, for n = 1, the function evaluates to 2^2^1 = 2^2 = 4. But for n = 2, the function becomes 2^2^2 = 2^4 = 16. The growth rate is extremely rapid, making this function the fastest-growing among the given options.

e) n^2^n: This function has a double exponential growth rate. The power n is raised to a power of 2, which increases exponentially. As n increases, the function grows rapidly. For small values of n, this function also grows faster than the remaining functions.

b) 2^(n^2): This function has an exponential growth rate, but the base is fixed (2). The power n^2 increases as n increases, resulting in exponential growth. It grows slower than the functions that have double exponential growth rates such as 2^(2^n) and n^2^n.

c) n^2 * log(n): This function has a polynomial growth rate. The highest power is n^2, and the logarithmic term log(n) grows significantly slower than any polynomial term. It grows slower than the exponential growth in the previous functions.

d) n: This function has a linear growth rate, which is the slowest among all the given options. For larger values of n, the growth is not as significant as in the other functions.

Based on their growth rates, we can arrange the functions in the following increasing order:

d) n
c) n^2 * log(n)
b) 2^(n^2)
e) n^2^n
a) 2^(2^n)

To arrange the given functions in increasing order of growth rate, we need to analyze the growth rates of each function.

First, let's compare functions a) and b):

a) 2^2^n
b) 2^n^2

To compare these two functions, we can take the logarithm of both:

log(a) = 2^n
log(b) = n^2 * log(2)

Now, we can see that the growth rate of log(a) is significantly higher than the growth rate of log(b). This means that function a) grows faster than function b). Therefore, we can conclude that:

a) 2^2^n
b) 2^n^2

Next, let's compare function b) with function c):

b) 2^n^2
c) n^2 * log(n)

To compare these functions, we can consider the exponential growth rate of function b) and the polynomial growth rate of function c). Exponential growth rates generally dominate polynomial growth rates. Therefore, we can conclude that:

b) 2^n^2
c) n^2 * log(n)

Next, let's compare function c) with function d):

c) n^2 * log(n)
d) n

To compare these functions, we need to consider the logarithmic growth rate of function c) and the linear growth rate of function d). Logarithmic growth rates generally dominate linear growth rates. Therefore, we can conclude that:

c) n^2 * log(n)
d) n

Finally, let's compare function d) with function e):

d) n
e) n^2^n

To compare these functions, we can take the exponential growth rate of function e) and the linear growth rate of function d). Exponential growth rates always dominate linear growth rates. Therefore, we can conclude that:

d) n
e) n^2^n

In summary, the functions in increasing order of growth rate are:

d) n
c) n^2 * log(n)
b) 2^n^2
a) 2^2^n
e) n^2^n