Подскажите пожалуйста как решить данную задачу оптимальным способом :
Пробовал пойти таким путем .Уперся в сохранение фрагментов в один массив
int[] arr = {1, 2, 3, 5, 6, 7, 8, 9, 0, 5, 6, 7, 8, 9, 2, 22};
Random random = new Random();
int rnd1 = 1 + random.nextInt(7);
int rnd2 = 3 + random.nextInt(15);
int[] col = Arrays.copyOfRange(arr, rnd1,rnd2);
System.out.println("Массив равен " + Arrays.toString(col));
Разбить массив размера N
случайным образом на M
фрагментов - это ни что иное как сгенерировать M - 1
неповторяющихся случайных чисел в диапазоне [0, N-1)
. Каждое такое случайное число - позиция, после которой делается разбиение массива.
Для исходных массивов небольшого размера прекрасно сработает "алгоритм Кнута" (?), в т.ч. потому, что он сразу генерирует упорядоченную последовательность случайно выбранных значений
// C++
#include <cstdlib>
#include <vector>
#include <iostream>
unsigned random(unsigned n)
{ // Случайное число в диапазоне [0, n)
return std::rand() % n;
}
int main()
{
std::vector<int> arr = { 1, 2, 3, 5, 6, 7, 8, 9, 0, 5, 6, 7, 8, 9, 2, 22 };
const unsigned N = arr.size(), M = 5;
unsigned i = 0, n = N - 1, n_splits = M - 1;
std::cout << "[ ";
for (i = 0; i < n; ++i)
{
std::cout << arr[i] << " ";
// Делаем в этом промежутке разрез с вероятностью
//
// осталось сделать разрезов n_splits
// -------------------------------- = --------
// осталось просмотреть промежутков n - i
//
if (random(n - i) < n_splits)
{
std::cout << "][ ";
--n_splits;
}
}
std::cout << arr[i] << " ]";
}
Получаем
[ 1 2 3 5 6 ][ 7 8 ][ 9 0 ][ 5 6 7 8 9 2 ][ 22 ]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Мне нужно загрузить файл в arraylist и заменить определенные строки, после записать мой лист в другой файл, как это реализовать?
Все началось с того, что я прочитал про static и про то, что методы помеченные static не переопределяютсяНаписал вот такой код, да бы убедиться:
Я новичек, учу Hibernate и вот столкнулся с проблемойПри первом добавлении в БД, создает три таблицы из которых одна отображает связи - казалось...