Just nu i M3-nätverket
Gå till innehåll

Ut


carl111

Rekommendera Poster

Det låter som en skoluppgift och i så fall bör du skriva in hur långt du har kommit i lösningen, vad du har fastnat på etc. Det är ju inte meningen att du ska skriva av en färdig lösning.

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Kul problem som antagligen har något att göra med lotto rad, det du efterfrågar är en utömmande sökning, men jag använde mig av slumpgeneratorer istället, som kan ta tid då den återupprepar att skapa arrayen ett flertal gånger om kriterierna inte uppnås! Jag gör ett vilt antagande att du kan lite Java, så här är min kod:

package tal.generator;

import java.util.Random;

public class Generator {
private int[] talArray;
public int[] getTalArray() {
	return talArray;
}
public Generator() {
	talArray = new int[7];
}
public int getSum() {
	return checkSum(talArray.length - 1);
}
public void generate(int minTal, int maxTal) {
	Random rnd = new Random(System.currentTimeMillis());
	int sum=0, value = 0;
	for(int i=0; i < talArray.length; i++) {
		value = maxTal - sum;
		if(value <= 0) {
			i=-1;
			continue;
		}
		do {
			talArray[i] = rnd.nextInt(34) + 1;
		}while(checkEquals());
		sum = checkSum(i);
		if(sum > maxTal) {
			i=-1;
			continue;
		}
		else if( i == (talArray.length - 1) && sum < minTal) {
			i = -1;
			continue;
		}
	}
}
private boolean checkEquals() {
	boolean isTrue = false;
	for(int i=0; i < talArray.length; i++) {
		for(int j=0; j < i; j++) {
			if(talArray[i] == talArray[j] && talArray[i] != 0 && i != j) {
				isTrue = true;
				break;
			}
		}
	}
	return isTrue;
}
private int checkSum(int value) {
	int sum=0;
	for(int i=0; i <= value; i++) {
		sum += talArray[i];
	}
	return sum;
}
}

och du kan köra den genom att skriva in detta:

package exekvera.mig;

import tal.generator.Generator;

public class Shooter {
public static void main(String[] args) {
	Generator gen = new Generator();
	gen.generate(100, 150);
	int[] myArray = gen.getTalArray();
	for(int i=0; i < myArray.length; i++) {
		System.out.print(myArray[i]);
		if(i != (myArray.length - 1)) {
			System.out.print(" + ");
		}
	}
	System.out.print(" = " + gen.getSum());
}
}

projektet.zip

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...