Just nu i M3-nätverket
Jump to content

Ut


carl111

Recommended Posts

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.

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
Share on other sites

  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...