Create the Sample class, which has a constructor that accepts an array p[] of double values as an input and supports the two operations shown below: Return an index i with a probability of p[i]/T (where T is the sum of the numbers in p[]) and alter(i, v) to change p[i] to v. Use a complete binary tree with each node having an inferred weight of p[i]. In each node, keep the entire weight of all the nodes in its subtree. Choose a random integer between 0 and T to generate a random index, and then use the cumulative weights to determine which branch of the subtree to investigate. Change the weights of all nodes on the path from the root to i when updating p[i]. Avoid using explicit pointers.
do for heaps.do for a lot of people.Create the Sample class, which has a constructor that accepts an array p[] of double values as an input and supports the two operations shown below: Return an index i with a probability of p[i]/T (where T is the sum of the numbers in p[]) and alter(i, v) to change p[i] to v. Use a complete binary tree with each node having an inferred weight of p[i]. In each node, keep the entire weight of all the nodes in its subtree. Choose a random integer between 0 and T to generate a random index, and then use the cumulative weights to determine which branch of the subtree to investigate. Change the weights of all nodes on the path from the root to i when updating p[i]. Avoid using explicit pointers. as we do for heaps.
Step by step
Solved in 3 steps with 5 images