СПИСОК ЛИТЕРАТУРЫ
1. Акопов А.С. «Компьютерное моделирование: учебник и практикум для СПО» / А.С. Акопов. – М.: Издательство Юрайт, 2019. – (Серия: Профессиональное образование). – 439 с.
2. Бусленко Н.П. Моделирование сложных систем/Н.П.Бусленко. – М.: Наука, 1988. – 246 с.
3. Вентцель Е.С. Задачи и упражнения по теории вероятностей: Учебное пособие для студ. Втузов/Е.С. Вентцель, Л.А. Овчаров. – М.: Издательский центр «Академия», 2003. – 172 с.
4. Градов В.М. «Компьютерное моделирование: Учебник» / В.М. Градов, Г.В. Овечкин, П.В. Овечкин и др. – М.: Инфра-М, 2016. – 298 с.
5. Гмурман В.Е. Руководство к решению задач по теории вероятностей и математической статистике: Учебное пособие для вузов/В.Е. Гмурман. – М.: Высш. шк., 2003. – 387 с.
6. Клейнен Дж. Статистические методы в имитационном моделировании/ Клейнен Дж. – М.: Статистика, 1978. – 228 с.
7. Лебедев А.Н. Моделирование в научно-технических исследованиях/ А.Н. Лебедев. – М.: Радио и связь, 1989. – 265 с.
8. Советов Б.Я. Моделирование систем: Учебник для вузов/ Б.Я. Советов, С.А. Яковлев. – М.: Высш. шк., 2001. – 517 с.
9. Х. Шенк. Теория инженерного эксперимента. Перевод с английского Е.Г. Коваленко/ Х. Шенк. – М.: Мир, 1972. – 303 с.
10. Шеннон Р. Имитационное моделирование систем. Искусство и наука/ Шеннон Р. – М.: Мир, 1978. – 408 с.
ПРИЛОЖЕНИЕ 1
Перестановки без повторений:
#include
using namespace std;
void swap(int *a, int i, int j)
{
int s = a[i];
a[i] = a[j];
a[j] = s;
}
bool NextSet(int *a, int n)
{
int j = n - 2;
while (j != -1 && a[j] >= a[j + 1]) j--;
if (j == -1)
return false; // больше перестановок нет
int k = n - 1;
while (a[j] >= a[k]) k--;
swap(a, j, k);
int l = j + 1, r = n - 1; // сортируем оставшуюся часть последовательности
while (lswap(a, l++, r--);
return true;
}
void Print(int *a, int n) // вывод перестановки
{
static int num = 1; // номер перестановки
cout.width(3); // ширина поля вывода номера перестановки
cout << num++ << ": ";
for (int i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
}
int main()
{
int n, *a;
cout << "N = ";
cin >> n;
a = new int[n];
for (int i = 0; i < n; i++)
a[i] = i + 1;
Print(a, n);
while (NextSet(a, n))
Print(a, n);
cin.get(); cin.get();
return 0;
}
Достарыңызбен бөлісу: |