Tag: 离散数学

用Java统一生成随机置换

任何人都知道在Java中生成整数列表的随机排列的快速/最快方法。 例如,如果我想要一个长度为5的随机排列,答案将是1 5 4 2 3 ,其中每个都是5! 可能性同样可能。 我对如何解决这个问题的想法是运行一种方法,该方法在所需长度的数组中生成随机实数,然后对它们进行排序,返回索引,即0.712 0.314 0.42 0.69 0.1将返回5 2 3 4 1的排列。 我认为这可以在O(n^2)运行,并且目前我的代码在大约O(n^3)运行,并且此时我的程序的运行时间占很大比例。 从理论上讲,这似乎没问题但我在实践中并不确定。

如何为组合编写递归函数

我正在阅读递归函数,我理解如何编写基本函数,但我对我的学习指南有一个我不明白的问题。 。 编写名为Combinations的递归函数的代码,用于计算nCr。 假设nCr可以如下计算: nCr = 1 if r = 0 or if r = n and nCr = (n-1)C(r-1) + (n-1)Cr 有人可以帮助我解决这个问题,还是以外行的方式解释一下? 谢谢!

如何找到特定数字的确切操作集?

我正在尝试实现一个解决此问题的程序: 如果给你一个特定的号码(例如:268) 和另外6个数字(例如:2,4,5,25,75,100) 我怎样才能找到能给出确切答案或最接近答案的操作? 您可以使用此操作回答上一个示例:75 * 4-25-5-2 = 268 规则: 你可以使用这些算术运算:+, – ,*,/,()。 当你使用除法时,提醒必须等于0(6/3即可,但6/4不正常!)。 你不能多次使用相同的数字。 此外,您可以避免使用数字(例如:在前面的示例中为100)。 有没有比写出整个可能性并选择最接近的可能性更好的解决方案? 因为这个答案会迫使我写出太多行代码,谢谢!