Witam serdecznie,
mam takie pytanko. Jak utworzyć tablicę, której losowe elementy, zawsze zwrócą sumę równą 0. Dla przykładu
A[0]= -7
A[1]= 1
A[2]= 5
A[3]= 2
A[4]= -4
A[5]= 3
A[6]= 0
A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0
A[6]= 0 zawsze jest takie same.
Tu nie chodzi o kod, tylko jakąś wskazówkę algorytmu , hmm ...
Zastanawiałam się nad takim sposobem. Dodać najpierw wszystkie losowe elementy tablicy. Tą sumę podzielić np przez 6 i zwróconą liczbę odjąć od każdego elementu...
Na razie mam coś takiego:
import java.util.*;
public class po1 {
public static void main(String args[]) {
Random generator = new Random();
int[] tab = new int[6];
int liczba = 0;
int[] tab2 = new int[6];
int licznik, zero, z, suma = 0;
float srednia = 0;
for (int i = 0; i < tab.length; i++) {
tab[i] = generator.nextInt(10);
}
System.out.print("Tablica random: ");
for (int i = 0; i < tab.length; i++) {
suma = suma + tab[i];
System.out.print(tab[i] + " ");
}
System.out.print(liczba);
System.out.println("");
srednia = (float) suma / 6;
System.out.println("Suma elementów tablicy wynosi " + suma + " srednia: " + srednia);
System.out.println(" ");
tab2[0] = (int) tab[0] - (int) srednia;
tab2[1] = (int) tab[1] - (int) srednia;
tab2[2] = (int) tab[2] - (int) srednia;
tab2[3] = (int) tab[3] - (int) srednia;
tab2[4] = (int) tab[4] - (int) srednia;
tab2[5] = (int) tab[5] - (int) srednia;
System.out.print(tab2[0] + " " + tab2[1] + " " + tab2[2] + " " + tab2[3] + " " + tab2[4] + " " + tab2[5] + " ");
}
}
Tylko niestety jeszcze moja druga tablica nie zwraca swojej sumy równiej 0 .. :(
Proszę uprzejmie o jakąś wskazówkę jak rozwiązać taki przykład. Tablica:
tab2[0]+tab2[1]+tab2[2]+tab2[3]+tab2[4]+tab2[5]=0
ale jej wartości są zawsze losowane