Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 94

Заполнения массива всеми возможными комбинациями

03.11.2018, 15:26. Показов 4012. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. В программу вводят два числа Первое-Максимальное число Второе -количество стобцов. На выходе массив со всеми комбинациями не повторяющимися начиная с верху. На картинке пару примеров как должно быть. Пока у меня получилось написать лишь в случаях когда одна строка либо 1- это максимальное число но дальше например 2 2 или 3 2 - никак( Я просто не могу понять как это в цикле прописать + я не знаю как считать сколько будет строк для создания массива при примерах где оба числа больше 1 (например 4 3). Помогите или подскажите. Приставил пример кода, прошу не обращать внимание что в нем к количеству столбцов на 1 больше, так и должно быть в него просто нужно случайные числа забить и в этом проблем нет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
int main(int argc, char* argv[])
{
 
 
 
    int a, b, N;
 
    cin >> a;
    cin >> N;
    cout << "a = " << a << endl;
    cout << "N = " << N << endl;
 
    if ((a == 1) || (N == 1))
    {
        long double **ptrarray1 = new long double*[a + N]; // i-1 строк  в массиве
        for (int count = 0; count < a + N; count++)
            ptrarray1[count] = new long double[N + 1]; // и N столбцов
 
 
 
        if (N == 1)
        {
            for (int count_row = 0; count_row < a + N; count_row++)// заполнение массива
            {
                for (int count_column = 0; count_column < N + 1; count_column++)
                {
                    if (ptrarray1[count_row][count_column] == ptrarray1[count_row][N])
 
                        ptrarray1[count_row][count_column] = (rand() % 200 - 100) / 100.0;
 
                    if (ptrarray1[count_row][count_column] != ptrarray1[count_row][N])
                        ptrarray1[count_row][count_column] = a - count_row;
 
                }
            }
        }
        if ((a == 1) && (N > 1))
        {
            for (int count_row = 0; count_row < a + N; count_row++)// заполнение массива
            {
                for (int count_column = 0; count_column < N + 1; count_column++)
                {
                    if (ptrarray1[count_row][count_column] == ptrarray1[count_row][N])
 
                        ptrarray1[count_row][count_column] = (rand() % 200 - 100) / 100.0;
 
                    if (ptrarray1[count_row][count_column] != ptrarray1[count_row][N])
                    {
                        if ((count_row + count_column) > N - 1)
                            ptrarray1[count_row][count_column] = 0;
                        else ptrarray1[count_row][count_column] = 1;
                    }
                }
            }
        }
 
 
        for (int count_row = 0; count_row < a+N; count_row++)
        {
            for (int count_column = 0; count_column < N + 1; count_column++)
                cout << setw(4) << setprecision(10) << ptrarray1[count_row][count_column] << "   ";
            cout << endl;
        }
    }
Миниатюры
Заполнения массива всеми возможными комбинациями  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2018, 15:26
Ответы с готовыми решениями:

Забить двумерный массив всеми возможными битовыми комбинациями
А вы не подскажете как в цикле забить двумерный массив всеми возможными комбинациями битов например при n = 3 будет двумерный...

Как расставить скобки в выражении всеми возможными способами?
В общем решаю одну непростую задачку, а условие такое: Дана строка чисел (например 123456=5) и сразу за ней знак равно и ещё одно число....

Разбить строку S на слова заданного набора всеми возможными способами
1.Помогите Составить программу на C++ пожалуйста(((( Дана строка S и набор Т слов А,.. , A. Разбить строку S на слова набора всеми...

30
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
07.11.2018, 13:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от TrollHammer Посмотреть сообщение
во времена ассемблера это происходило именно так
А сейчас программу не проектируют на бумаге? Да и мне казалось, что в ассемблере переменные объявлялись в отдельном блоке, а не где угодно.
Цитата Сообщение от TrollHammer Посмотреть сообщение
очень легко запутаться, где, когда и что хранит каждая переменная
Я в книге читал, что определение переменных наиболее близко к месту их использования наоборот повышает шанс избежать ошибок.
1
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
07.11.2018, 13:29
Цитата Сообщение от Nishen Посмотреть сообщение
объявлялись в отдельном блоке
Я имел в виду, что во времена ассемблера сначала наброски программы делались на бумаги (сижу, смотрю на полку с тетрадками в 92 листа с прогами для ZX )
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
07.11.2018, 13:35
TrollHammer, имхо, дело не в этом. Хоть я тоже привык к Си-парадигмам, объявление переменных именно в нужном месте создает массу удобств. Пример. Есть кусок кода, который вы решили временно убрать (заменить). Ставите /* и */. И тут оказывается, что объявленная в начале переменная - не используется. Получаете Варринг. Не люблю. Не обращать на них внимания - привычка плохая. Значит, приходится лезть на пол-сотни строк выше, комментировать и эту переменную. То есть удваивается количество мест, требующих правки (и обратной правки), что вовсе не способствует безошибочности этого процесса.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
07.11.2018, 13:48
Байт, Я плотно сижу на Builder, для меня единственное удобство - это вводить переменную-анализатор где-нибудь в блоке вычислений и присваивать ей какое-либо промежуточное значение, чтобы при отладке отслеживать результат, а так - только заранее. Самое важное - присваивать переменным осмысленные имена, а всякие i, j, k ,n - оставить для счетчиков циклов. Возможно, я не прав
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
07.11.2018, 14:12
Цитата Сообщение от TrollHammer Посмотреть сообщение
Возможно, я не прав
О правоте-неправоте тут говорить трудно. Да и не к чему. Все это дело вкуса и лично вашего удобства. И привычек. Можно обсуждать плюсы и минусы, делиться своими пристрастиями, но не более того.
Цитата Сообщение от TrollHammer Посмотреть сообщение
Я плотно сижу на Builder,
Сидел и я. Недолго, правда. Ничего важного себе не отсидел. Ибо встретил Кутю (Qt) и о Бюлдере забыл навсегда. Опять же, это лично мой опыт, мое решение и моя судьба.
0
07.11.2018, 14:15

Не по теме:

Байт, Вот с Qt дела не имел, но есть интерес поработать в этой среде

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
07.11.2018, 14:26
Цитата Сообщение от TrollHammer Посмотреть сообщение
но есть интерес
Так за чем же дело стало? Берите Шлее или Бланшета с Саммерфилдом, качайте систему - и вперед. Кстати, тут на форуме есть и раздел соответствующий.
1
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 94
13.11.2018, 00:26  [ТС]
Такая дискуссия а по теме никто не помог(
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.11.2018, 09:17
Цитата Сообщение от DuDusty Посмотреть сообщение
по теме никто не помог(
Чтобы вам помочь, надо сначала убедиться, что предыдущее советы не прошли даром. И увидеть последний вариант кода и описанием проблем. Если за последний вариант считать код поста 19, то на строчке 16 мне стало дурно и я был вынужден его изучение отложить.
Учитывая, что в посте 14 вообще изложен полный бред, да еще со словами
Цитата Сообщение от DuDusty Посмотреть сообщение
Но это то же самое ваш кусок кода.
дальнейшее обсуждение темы мне стало неинтересно.

Добавлено через 7 минут
DuDusty, Тем не менее, вот что я хочу вам посоветовать. Тема в смысле начального вопроса стала запутана, коды какие-то рваные, постов много, работать трудно, приходится много листать.
Просто родите тему заново. Резюмируйте все советы, аккуратно напишите проблемный код. Так, чтобы мы могли проверить его у себя. Опишите входные данные, на которых работает не так. Расскажите, как работать должно. И создайте новую тему.
0
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 94
13.11.2018, 20:33  [ТС]
Понял,уже делаю.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.11.2018, 22:31
Цитата Сообщение от DuDusty Посмотреть сообщение
уже делаю.
Маленькое замечаньице. Уберите слова "заполнение массива". Замените его на "генерация всевозможных..." Тут слово "массив" уже напрягает. И поворачивает мысль совсем в другую сторону.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2018, 22:31

Построить последовательность n!, для n=1…7 со всеми возможными перестановками из элементов этой последовательности
Помогите с задачкой...:(Построить последовательность n!, для n=1…7. Для всех элементов этой по-следовательности и построить для них все...

Пол-ль вводит число от 50 до 100. Программа раскладывает число на сумму 4-х квадратов, всеми возможными способами
Пример: 39 = 1^2+2^2+3^2+5^2. Не получается написать код для этой задачи Помогите пож разобраться

Как заполнить массив всеми возможными комбинациями из 0 и 1?
Как заполнить массив из N элементов различными комбинациями из 1 и 0

Рекурсия: переставить элементы массива всеми возможными способами
Дан одномерный массив, все элементы которого различны. Переставить элементы массива всеми возможными способами с помощью рекурсии.

Редактирование xls всеми возможными способами
обычно я открывал файл через winrar, распаковывал содержимое и редактировал то что мне надо и вот попался мне файл который не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru