Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定Java中字符串的可能组合数_Java_Android - Fatal编程技术网

确定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

在刷新我的Java知识之后,我能够想出如何生成一个随机的字母数字字符串。以下是我的方法:

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
的幂中),而不仅仅是乘法,您还可以对power
long
使用
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感谢您对获得组合数的见解。