Population Simulation

Programspopulation_sim_100.7 (published 2009-08-03)
population_sim_100.8 (published 2010-04-02)
source code (written in HP-BASIC for OpenVMS)
NotesThis population simulation is a quick hack to test a few ideas rolling around my head
The output of this program is text-based (not graphical)
Click  for other totally free BASIC, C, C++, and DCL programs for OpenVMS
Local Document Links:
  • Sample Run 1 (one-child per-couple policy)
    • drops by 1/3 after 41 years
  • Sample Run 2 (one-child per-couple policy with 1% unplanned teenage mating)
  • Sample Run 3 (two-child per-couple policy)
  • Sample Run 4 (one-child per-couple policy; mating is spread across five years)
    • drops by 1/3 after 42 years
  • Sample Run 5 (one-child per-couple policy; mating is spread across five years)
    • drops by 1/3 after 44 years

Implementation Notes:

  1. this is an idealized society where everyone lives to old age then dies in the same year on December 31
  2. selected groups mate all on the same day then give birth on September 1
  3. selected groups only mate within their own age group
  4. all mating produces an equal number of males and females
  5. this society starts with an evenly distributed population then begins implementing the desired policy
  6. all logic (except repro_fraction) is implemented with integers. I did this to make this simulation more deterministic AND to make sure we don't have fractional people.
  7. Legend:
    PR = Planned Reproduction
    TR = Teenage Reproduction


  1. if every couple produces two children, the population will remain constant (because when the parents die, two replacements will remain)
  2. since the reproduction rate adds to (or subtracts from) the total population, then the maximum average life span plays a larger roll than you would suspect.
  3. a true one-child-per-couple policy will require 41 years to cut the population in half (if the average maximum age is 75).
  4. a tiny amount of unplanned teenage reproduction will grow the population faster than you would suspect.
  5. my implementation is not as restrictive as you might think.
    1. Whether mating is restricted to people in the same age group OR matting is unfettered, their offspring all contribute to the same baby pool which then ripples through to the end.
    2. People dying all in the same year is not a problem. In realty, some will die earlier while others might die later so it all averages out. This simulation would have a problem only if people died before they reproduced.

Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.