将方法随机分配到输入中

艾玛

对于每个输入(名称、电话号码),我使用随机数生成器将输入分配给一个方法。我的目标是将所有可能的方法组合用于输入。

下面是我的代码。如果我有 1000 个输入和方法怎么办?有没有什么有效的方法来解决这个问题?

public static void main(String[] args) {

  for (int i = 0; i < 9; i++) {

    Random myRand = new Random();
    int randomInteger = myRand.nextInt(10);

    if (randomInteger == 0) {
      name = methodA();
      phoneno = methodA();
    } else if (randomInteger == 1) {
      name = methodA();
      phoneno = methodB();
    } else if (randomInteger == 2) {
      name = methodB();
      phoneno = methodB();
    } else if (randomInteger == 3) {
      name = methodB();
      phoneno = methodA();
    } else if (randomInteger == 4) {
      name = methodC();
      phoneno = methodC();
    } else if (randomInteger == 5) {
      name = methodC();
      phoneno = methodA();
    } else if (randomInteger == 6) {
      name = methodC();
      phoneno = methodB();
    } else if (randomInteger == 7) {
      name = methodA();
      phoneno = methodC();
    } else if (randomInteger == 8) {
      name = methodB();
      phoneno = methodC();
    }
  }
}

public static String methodA() {
  //do something
}

public static String methodB() {
  //do something
}

public static String methodC() {
  //do something
}

任何帮助将不胜感激。谢谢你

大卫·克罗斯·皮佐利

这是一个解决方案...

import java.util.Random;

public class Main {

    public static final int FUNCTION_NUMBER = 3;

    public static String functionA() {
        return "A";
    }

    public static String functionB() {
        return "B";
    }

    public static String functionC() {
        return "C";
    }

    public static String callFunction(int function_index) {
        switch (function_index) {
            case 0: return functionA();
            case 1: return functionB();
            case 2: return functionC();
            default: throw new IllegalArgumentException("Incorrect value for function_index");
        }
    }

    public static void main(String[] args) {
        Random random = new Random();

        int n = random.nextInt((FUNCTION_NUMBER * FUNCTION_NUMBER) - FUNCTION_NUMBER);
        int name_function_index = n / FUNCTION_NUMBER;
        int phone_no_function_index = n % FUNCTION_NUMBER;

        System.out.print(callFunction(name_function_index));
        System.out.print(callFunction(phone_no_function_index));
        System.out.println("--------------");

    } 

}

如果要添加其他函数,只需声明它,增加 FUNCTION_NUMBER 常量并在 callFunction 函数中添加一个案例。

所有的工作都在这里完成

int n = random.nextInt(FUNCTION_NUMBER * FUNCTION_NUMBER);
int name_function_index = n / FUNCTION_NUMBER;
int phone_no_function_index = n % FUNCTION_NUMBER;

考虑到您的示例中有 3 个函数,我们有 9 种组合(AA、AB、AC、BA、BB、BC、CA、CB、CC)。n 是一个介于 0 和 8 之间的随机值。

int n = random.nextInt(FUNCTION_NUMBER * FUNCTION_NUMBER);

组合的数量可以分成组。一组名称功能。为此,我们使用除法运算符。因此,对于值 0、1 和 2,组编号为 0(函数 A)。对于值 3、4 和 5,组编号为 1(功能 B),对于值 6、7 和 8。

int name_function_index = n / FUNCTION_NUMBER;

对于电话号码函数,就像我们为每个名称函数(如前面描述的每个组)迭代函数一样。为此,我们使用模运算符。

int phone_no_function_index = n % FUNCTION_NUMBER;

这是每个 n 值的函数索引表。可以看到它代表了所有的功能组合。

n name_function phoneno_function

0 0 0
1 0 1
2 0 2
3 1 0
4 1 1
5 1 2
6 2 0
7 2 1
8 2 2

如果你想丢弃重复,你可以使用这个

int n = random.nextInt(FUNCTION_NUMBER * FUNCTION_NUMBER) - FUNCTION_NUMBER;
int name_function_index = n % FUNCTION_NUMBER;
int phone_no_function_index = (n + 1 + (n/4)) % FUNCTION_NUMBER;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据从输入文件分配到哈希中

来自分类Dev

以相同方式将2个资源参数随机分配到数组中

来自分类Dev

使用r将因子变量随机分配到不同的组中

来自分类Dev

将人随机分配到不同的大小组和类别

来自分类Dev

将特定值分配到3个html输入标签中

来自分类Dev

PHP将数组随机匹配到自身中

来自分类Dev

将路径文件分配到VBA中的变量中

来自分类Dev

将属性路由值分配到Model / FromBody参数中

来自分类Dev

将值均匀分配到容器中的算法?

来自分类Dev

将多个作业分配到python字典中

来自分类Dev

根据MATLAB中的多个索引将数据分配到矩阵

来自分类Dev

将.txt文件的特定内容分配到bash变量中

来自分类Dev

将身份块分配到更大的矩阵中

来自分类Dev

将数量分配到桶中 - 不均匀

来自分类Dev

将秒数上的值分配到新列中

来自分类Dev

将记录从一个表随机分配到另一个表

来自分类Dev

将受试者随机分配到大小相等的组中,并查看所有可能的结果

来自分类Dev

用户输入被分配到单独的数组 (c)

来自分类Dev

如何循环多种形式的输入,并分配到php中的sql查询?

来自分类Dev

如何将用户的输入LatLng分配到在该LatLng斗争中创建的标记位置

来自分类Dev

将多个图像(文件)从一个文件输入分配到另一文件输入-上传

来自分类Dev

R:通过随机抽样将学生分配到相同的组。了解rep()参数length.out到sample()

来自分类Dev

将指针分配到指针数组

来自分类Dev

将指针分配到指针数组

来自分类Dev

根据尺寸将产品分配到系列

来自分类Dev

如何生成将球分配到箱中的所有组合,包括空分配和完整分配?

来自分类Dev

如何将结果列表分配到Android中的TableLayout行中?

来自分类Dev

我如何将数据平均分配到php中的4列中?

来自分类Dev

使用assign()函数将列名称分配到R中的空数据框中

Related 相关文章

  1. 1

    如何将数据从输入文件分配到哈希中

  2. 2

    以相同方式将2个资源参数随机分配到数组中

  3. 3

    使用r将因子变量随机分配到不同的组中

  4. 4

    将人随机分配到不同的大小组和类别

  5. 5

    将特定值分配到3个html输入标签中

  6. 6

    PHP将数组随机匹配到自身中

  7. 7

    将路径文件分配到VBA中的变量中

  8. 8

    将属性路由值分配到Model / FromBody参数中

  9. 9

    将值均匀分配到容器中的算法?

  10. 10

    将多个作业分配到python字典中

  11. 11

    根据MATLAB中的多个索引将数据分配到矩阵

  12. 12

    将.txt文件的特定内容分配到bash变量中

  13. 13

    将身份块分配到更大的矩阵中

  14. 14

    将数量分配到桶中 - 不均匀

  15. 15

    将秒数上的值分配到新列中

  16. 16

    将记录从一个表随机分配到另一个表

  17. 17

    将受试者随机分配到大小相等的组中,并查看所有可能的结果

  18. 18

    用户输入被分配到单独的数组 (c)

  19. 19

    如何循环多种形式的输入,并分配到php中的sql查询?

  20. 20

    如何将用户的输入LatLng分配到在该LatLng斗争中创建的标记位置

  21. 21

    将多个图像(文件)从一个文件输入分配到另一文件输入-上传

  22. 22

    R:通过随机抽样将学生分配到相同的组。了解rep()参数length.out到sample()

  23. 23

    将指针分配到指针数组

  24. 24

    将指针分配到指针数组

  25. 25

    根据尺寸将产品分配到系列

  26. 26

    如何生成将球分配到箱中的所有组合,包括空分配和完整分配?

  27. 27

    如何将结果列表分配到Android中的TableLayout行中?

  28. 28

    我如何将数据平均分配到php中的4列中?

  29. 29

    使用assign()函数将列名称分配到R中的空数据框中

热门标签

归档