确定Java中字符串的可能组合数
在刷新我的Java知识之后,我能够想出如何生成一个随机的字母数字字符串。以下是我的方法:确定Java中字符串的可能组合数,java,android,Java,Android,在刷新我的Java知识之后,我能够想出如何生成一个随机的字母数字字符串。以下是我的方法: private static final String ALPHA_NUMERIC_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; String idGenerator(int count){ StringBuilder builder = new StringBuilder(); while (count-- != 0
private static final String ALPHA_NUMERIC_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
String idGenerator(int count){
StringBuilder builder = new StringBuilder();
while (count-- != 0) {
int character = (int)(Math.random()*ALPHA_NUMERIC_STRING.length());
builder.append(ALPHA_NUMERIC_STRING.charAt(character));
}
return builder.toString();
}
然而,我想知道我的idGenerator
方法可以产生多少种可能的字符串组合?是否有内置的方法、类或可能的算法来确定这一点?谢谢 一个助手方法:
public static int getPossibleCombinationsCount(int count) {
return Math.pow(ALPHA_NUMERIC_STRING.length() , count);
}
一种辅助方法:
public static int getPossibleCombinationsCount(int count) {
return Math.pow(ALPHA_NUMERIC_STRING.length() , count);
}
应该有大量的组合,因此,IMHO,biginger
是
正确的选择
public static BigInteger getPossibleCombinationsCount(int count) {
return BigInteger.valueOf(ALPHA_NUMERIC_STRING.length()).pow(count);
}
应该有大量的组合,因此,IMHO,biginger
是
正确的选择
public static BigInteger getPossibleCombinationsCount(int count) {
return BigInteger.valueOf(ALPHA_NUMERIC_STRING.length()).pow(count);
}
它的简单数学。。。您的代码可以生成
36代码>(阶乘36)组合对于单个字符(26个字母+10个数字)和36**count
字符串count
长度排列和组合YUP,有36种可能性。我两年前刚看过离散数学笔记。检查排列和组合。排列和组合仅适用于不允许字符重复的情况。它的简单数学。。。您的代码可以生成36代码>(阶乘36)组合对于单个字符(26个字母+10个数字)和36**count
字符串count
长度排列和组合YUP,有36种可能性。我两年前刚看过离散数学笔记。检查排列和组合。排列和组合仅适用于不允许重复字符的情况。应该有ALPHA\u NUMERIC\u STRING.length**count
(count
的幂中的length
),而不仅仅是乘法,您可以对power使用Math
在count
的幂中应该有ALPHA\u NUMERIC\u STRING.length**count
(length
在count
的幂中),而不仅仅是乘法,您还可以对powerlong
使用Math
在count>5
中需要biginger
对于count>12
这行biginger count=getPossibleCombinationsCount(12)是必需的;Log.i(“组合计数”,String.valueOf(计数))代码>答案是473813383821616896。我不确定这是否正确。lol。重新阅读我的统计笔记。似乎这是一个很好的方法,因为BigInteger涵盖了大量的numbers@Miguel里维拉:4738133821616896
对于12
的答案是正确的,正是36**12
@DmitryBychenko感谢您对获取组合数的了解。long
是count>5
所需的biginger
对于count>12
这行biginger count=getPossibleCombinationsCount(12)是必需的;Log.i(“组合计数”,String.valueOf(计数))代码>答案是473813383821616896。我不确定这是否正确。lol。重新阅读我的统计笔记。似乎这是一个很好的方法,因为BigInteger涵盖了大量的numbers@Miguel里维拉:473813383821616896
对于12
的答案是正确的,确切地说是36**12
@DmitryBychenko感谢您对获得组合数的见解。