Implement the dynamic programming algorithm for the optimal binary search tree problem.
Provide a feature to store the three matrices e (cost), w(weight), and r(root), and also the optimal binary search tree.
There is no specific programming- language requirement
Generate 10, 100, 1000, 10000, and 100000 randomly generated keys, and their probabilities. Remember the sum of probabilities is one Implement a program for random values too.