Add 1 row Cylinder Poke Faces.
Another method to use would be add a cylinder with depth such that the faces are squares.. could do the math easy to alter later.
Select all the square faces and F3 Poke faces.
Select all the "poke" vertices and scale desired amount. (with median point as pivot)
Can now array the cylinder relative in z.
This has been put forward as an alternative to positioning the single pyramid.
In as much as there are many ways to do this with duplis, particle systems or array modifiers using one pyramid. There will need to be some tweaking to avoid overlap or other issues.
A script would be one way to position them (using any method) to calculate the radius given the number.