user3047: Here is what I have estimates on: There exists hardware capable of 60 gigahashes per second. Over the next few months, X amount of these will be mining bitcoins.
Difficulty is recalculated every 2016 blocks.  X * 60,000 megahashes = Y terahashes to total mining.
At current difficulty it will take a machine calculating at 60 gigahashes about 3.6 days to solve 1 block. With just 700 of these machines each solving 1 block every 3.6 days, difficulty will be at Z within a week, where difficulty is then recalculated to even out the time period of solving blocks (if I understand correctly).
The variable I have is about what the implications are of the algorithm for difficulty. Is it intended for there to only be a finite number of blocks solved in a certain timeframe?

user3310: 
Is it intended for there to only be a finite number of blocks solved
  in a certain timeframe?

Yes.  The intended rate is 1 block per 10 minutes, which is 144 blocks per day, which is 2016 blocks every 2 weeks.
To estimate the difficulty, flip around the "time to generate a block at a hash rate" equation
difficulty=((Time for a block to be found in seconds)*(hashes per second))/2^32
Where the time is 600 and the hashrate is whatever you want.

user7184: This is a old question, but I'd like to give some precisions:

You can calculate the new difficulty with the very simple formula newDifficulty=currentDifficulty*600/averageTimeBetweenBlocksSinceLastDifficultyChange; your question is about calculating it from hash speed, the formula given by Compro01 is correct
averageTimeBetweenBlocksSinceLastDifficultyChange can be computed from the hash power with the formula powerInHashesPerSecond=currentDifficulty*2^32/averageTimeBetweenBlocks ie averageTimeBetweenBlocks=currentDifficulty*2^32/powerInHashesPerSecond which are the exact same formula Compro01 said


3047: <p>Here is what I have estimates on: There exists hardware capable of 60 gigahashes per second. Over the next few months, X amount of these will be mining bitcoins.</p>

<p>Difficulty is recalculated every 2016 blocks.  X * 60,000 megahashes = Y terahashes to total mining.</p>

<p>At current difficulty it will take a machine calculating at 60 gigahashes about 3.6 days to solve 1 block. With just 700 of these machines each solving 1 block every 3.6 days, difficulty will be at Z within a week, where difficulty is then recalculated to even out the time period of solving blocks (if I understand correctly).</p>

<p>The variable I have is about what the implications are of the algorithm for difficulty. Is it intended for there to only be a finite number of blocks solved in a certain timeframe?</p>
 3310: <blockquote>
  <p>Is it intended for there to only be a finite number of blocks solved
  in a certain timeframe?</p>
</blockquote>

<p>Yes.  The intended rate is 1 block per 10 minutes, which is 144 blocks per day, which is 2016 blocks every 2 weeks.</p>

<p>To estimate the difficulty, flip around the "time to generate a block at a hash rate" equation</p>

<p><code>difficulty=((Time for a block to be found in seconds)*(hashes per second))/2^32</code></p>

<p>Where the time is 600 and the hashrate is whatever you want.</p>
 7184: <p>This is a old question, but I'd like to give some precisions:</p>

<ul>
<li><p>You can calculate the new difficulty with the very simple formula <code>newDifficulty=currentDifficulty*600/averageTimeBetweenBlocksSinceLastDifficultyChange</code>; your question is about calculating it from hash speed, the formula given by Compro01 is correct</p></li>
<li><p><code>averageTimeBetweenBlocksSinceLastDifficultyChange</code> can be computed from the hash power with the formula <code>powerInHashesPerSecond=currentDifficulty*2^32/averageTimeBetweenBlocks</code> ie <code>averageTimeBetweenBlocks=currentDifficulty*2^32/powerInHashesPerSecond</code> which are the exact same formula Compro01 said</p></li>
</ul>
