2016-10-10 2 views
2

저는 현재 Android Studio에서 학교 프로젝트를 진행하고 있습니다. 무작위 수를 생성하는 알고리즘을 작성하고 싶습니다. 난수가 아니라 30 + 48-18과 같은 실제 방정식을 생성하고 싶습니다. 나는 다음과 같이 생각했다 :방정식을 무작위로 생성하는 알고리즘

Random rand1 = new Random(); 
int operation = rand1.nextInt(2)+1; 
String StringOperation = String.valueOf(operation); 
  • :

    1. 내가 allready 작성했습니다 (그 코드를 1 내지 3 간격으로 작업의 양을 나타내는 임의의 숫자를 생성

      모든 작업에 대해 임의로 연산 (+, -, *, /)을 선택하십시오.이 단계의 코드를 작성하는 데 어려움을 겪고 있습니다 ...

    2. 마지막 단계는 무작위로 acutal 번호를 생성하는 것입니다. 에 나타날 것이다. ctual 방정식. 이것은 방정식에 (작업량) +1 숫자가 필요하다는 것을 의미합니다. 이렇게하면 코드를 작성하는 것이 그렇게 어렵지 않을 것입니다.

    이 단계의 코드를 작성하는 데 어려움을 겪고있는 누군가가 2 단계에서 나를 도울 수 있다면 많은 도움이 될 것입니다. 나는 이미 몇 가지 시도를했지만 모두 작동하지 않았습니다.

    아무것도 불분명 한 경우, 그래서를 적어주세요 내가 문제를 명확히 할 수 있습니다 :)

    사전에 이미 주셔서 감사합니다!

  • +0

    Android 태그는 그다지 관련이 없습니다. 프로그래밍의 어려움은 더 중요합니다. –

    답변

    0

    사이의 임의의 숫자를 생성 한 후 스위치 문을 사용할 수 있습니다,

    public static int getRandom(char[] array) { 
    int rnd = new Random().nextInt(array.length); 
    return array[rnd]; 
    } 
    

    또는 임의의 동작을 얻기 위해 아래의 기능을 사용할 수 있습니다 어떤 조작 (+, -, *, /). 이 단계의 코드를 작성하기 위해 고심 중입니다 ...

    유한 작업 집합에서 {+, -, *, /}를 임의로 선택하면 어떻게됩니까? 당신은 자신의 위치를보고 임의로 선택하겠습니까? 힌트는 범위 (0,3)에서 임의로 위치를 선택하고 무작위 위치를 인덱스로 사용하여 작업을 얻는 것입니다.

    더 이상 읽지 않으려 고 시도해보십시오.

    String[] operationSet = new String[]{"+", "-", "/", "*"}; 
    
    public void testGenerateRandomEquations() { 
    
        Random random = new Random(); 
        int numOfOperations = random.nextInt(2) + 1; 
    
        List<String> operations = new ArrayList<>(); 
    
        for (int i = 0; i < numOfOperations; i++) { 
         String operation = operationSet[random.nextInt(3)]; 
         operations.add(operation); 
        } 
    
        int numOfNumbers = numOfOperations + 1; 
        List<Integer> numbers = new ArrayList<>(); 
    
        for (int i = 0; i < numOfNumbers; i++) { 
         int number = random.nextInt(Integer.MAX_VALUE) - random.nextInt(Integer.MAX_VALUE); 
         numbers.add(number); 
        } 
        //Now you've the list of random numbers and operations. You can further randomize 
        //by randomly choosing the number and operation from those list. 
    } 
    
    +0

    감사합니다! 나는 이것을 시험해보고 그것이 나를 위해 일했는지 말해 줄 것이다 : D – zutru

    +0

    도와주기를 기원한다. 작동 할 것이고, 나중에 표현식을 계산하고자한다면, 표현식을 다른 형식 (infix 또는 postfix)으로 저장하는 것이 더 좋습니다. 여기에 대해 읽어보십시오 - http://stackoverflow.com/questions/7562477/why-do-we-need-prefix-postfix-notation. –

    +0

    그리고 실제 방정식은 이미 완성 되었습니까? 또는 방정식을 완료하기 위해 다른 작업을해야합니까? – zutru

    0

    2 단계에서는 조작을 배열에 저장할 수 있습니다. 그럼 당신은 그런 모든 작업이 무작위로 선택을 위해도 1과 4

    관련 문제