Кому не трудно, можете объяснить для чего в выражении x = (int) (Math.random()*(upperBound-lowerBound) + lowerBound); нужен +lowerBound? Никак додуматься не могу