我知道有一种算法允许,在给定数字组合(无重复,无顺序)的情况下,计算字典顺序的索引.
对我的应用来说,加速事情会非常有用......
例如:
combination(10, 5)
1 - 1 2 3 4 5
2 - 1 2 3 4 6
3 - 1 2 3 4 7
....
251 - 5 7 8 9 10
252 - 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
我需要算法返回给定组合的索引.
es:index( 2, 5, 7, 8, 10 )- > index
编辑:实际上我正在使用一个生成所有组合C(53,5)的Java应用程序并将它们插入到TreeMap中.我的想法是创建一个包含我可以使用此算法索引的所有组合(和相关数据)的数组.
一切都是加速组合搜索.但是我尝试了一些(不是全部)解决方案,你提出的算法比TreeMap中的get()慢.
如果它有帮助:我的需求是从0到52的5到53的组合.
再次感谢大家:-)
ObjectInputStream.readObject()方法可以返回null吗?
我正在使用netbeans和它的分析器来查看线程活动.图表显示,当执行多个工作线程时,线程可以保持多种状态:运行,等待,监视.
我编写了我的java应用程序,以便其工作线程只使用只读变量而不需要同步.
但是,在执行netbeans探查器时,我可以看到我的线程经常处于监视器状态.我想他们正在等待显示器解锁,但我可以想象哪个显示器.
所以,我的问题是:有没有办法了解线程正在等待什么监视器?
谢谢
java ×3
algorithm ×1
io ×1
jmap ×1
math ×1
memory ×1
memory-leaks ×1
performance ×1
profiling ×1
wait ×1