Permutations.java |
package lectures.class_dual_roles.statics; import util.annotations.WebDocuments; /** * SEPARATION OF CONCERNS * The separation of concerns principle says that if a set of methods and * variables, S1, can be defined independently of another set of methods and * variables, D2, then the two sets should be in different classes. Dependence * is not a commutative. S1 can depend on S2, but S2 can be independent of S1. * If one of these sets is independent of the other set, then different classes * C1 and C2 should be defined for them, with one class possibly using methods * from the the other. * * * (T/F) The class Permutations depends on the class Factorials. * (T/F) The class Factorials depends on the class Permutations. * (T/F) The separation of concerns principle implies that the methods in * Factorials and Permutations should be in different classes. * * */ @WebDocuments({"Lectures/ClassDualRolesStatics.pptx", "Lectures/ClassDualRolesStatics.pdf", "Videos/ClassDualRolesStatics.avi"}) public class Permutations { public static long numPermutations(int n, int r) { return Factorials.loopingFactorial(n) / Factorials.loopingFactorial(n-r); } } /* * Go next to: {StaticLoopingFactorialSpreadsheet}(F3 or CTRL/Command Click on its name) */