14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
1

Алгоритм генерации всех комбинаций

02.02.2015, 20:13. Показов 3492. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть массив типа int, размер 256
в каждой ячейке цифра от 1 до 4.
Нужен быстрый алгоритм который запишет в текстовый файл .txt все комбинации этих чисел.
Может у есть такой ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2015, 20:13
Ответы с готовыми решениями:

Написать функцию для генерации всех комбинаций цифр
Здравствуйте, как написать такую функцию: Есть переменная типа string: string str = "58422"; как...

Алгоритм нахождения всех возрастающих комбинаций
Доброго время суток форумчане. Встретил задачу над корой бьюсь уже второй день, направьте мои мысли...

Реализовать алгоритм всех возможных комбинаций восьми ферзей
Доброго времени суток! Мне стыдно задавать такой вопрос, но всё же, как реализовать алгоритм всех...

Алгоритм генерации всех подмножеств с повторениями
Реализовать не рекурсивную версию алгоритма, генерирующего все подмножества с повторениями я...

10
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
02.02.2015, 20:28 2
Алгоритм перебора для записи в файл? Я всё правильно понял? Или всё-таки переформулируешь свой вопрос!?
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
02.02.2015, 20:31  [ТС] 3
Алгоритм для перебора всех комбинаций из данных чисел в массиве, как-то так.
Но проблема в том, что массив большой - 256 символов, и перебор идет очень медленно.
0
97 / 71 / 12
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
02.02.2015, 20:37 4
1) Генерировать только уникальные комбинации?
2) Комбинации должны быть длиной 256 символов?
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.02.2015, 20:40 5
Цитата Сообщение от tdo22 Посмотреть сообщение
и перебор идет очень медленно.
4256 вариантов. Ну и чего ты хочешь?
Можно уменьшить время генерации каждой комбинации линейно. (Зависит от того как ты перебираешь) Скажем, в 10 раз. Но все равно все 2512 комбинаций придется выводить. И где ты найдешь диск, на который поместится 10150 записей по 256 байт? Даже если объединить все ресурсы интернета, такой емкости тебе не найти. Это "немножко" больше количества атомов во вселенной
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
02.02.2015, 21:44 6
Я тут даже наглядный эксперимент провёл...
Размер массива 18 --- 9 262 693 440 байт в файле.
Размер массива 19 --- 37 153 692 576 байт в файле.
Размер массива 20 --- 195 545 750 400 байт в файле.
...
Дальше размера массива 20 заходить не хочу, т.к. это очень долгий процесс...
Хочешь - проверь сам.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdio>
#include <cstdint>
#include <algorithm>
 
int main()
{
    uint64_t        n = 0;
    int             arr[10];
    const size_t    size = sizeof( arr ) / sizeof( arr[0] );
 
    // fill array
    for ( int & i : arr ) {
        i = rand() % 4 + 1; // from 1 to 4 inclusive
    }
 
    // sort it for 'next_permutation' algo. ...
    std::sort( &arr[0], &arr[size] );
 
    do {
        ++n;
    } while ( std::next_permutation( &arr[0], &arr[size] ) );
    printf( "Output file size: %llu\n", n * size );
}
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.02.2015, 22:09 7

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Я тут даже наглядный эксперимент провёл...
Ага, значит на слово старой таксе не поверил?:D



Добавлено через 8 минут

Не по теме:

Совсем не по теме, но любопытно... Как трактовать приставку ЭКС в слове ЭКСпотенциальный? Бывшая потенция (возможность) ?

0
castaway
02.02.2015, 22:16
  #8

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Ага, значит на слово старой таксе не поверил?:)
Ну почему не поверил, просто захотел привести наглядный пример:)
Если вопрос про "ЭКС" ко мне, то я не понял)

0
Байт
02.02.2015, 22:22
  #9

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Если вопрос про "ЭКС" ко мне, то я не понял)
И не к тебе, и вообще музыкой навеяло из другого топика. Просто вот в голову тюкнул такой вопрос. Ведь тысячи раз это слово произносил, и никогда не думал об этимологии.
Надеюсь, никого ненароком не задел?:)

0
Croessmah
03.02.2015, 04:45
  #10

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
ЭКСпотенциальный?
экспоненциальный. Всё-таки экспонент, а не экспотент :D
Цитата Сообщение от Байт Посмотреть сообщение
Ведь тысячи раз это слово произносил
Прям вот с буквой "т"? :)

Цитата Сообщение от Байт Посмотреть сообщение
Как трактовать приставку ЭКС
экс - это часть корня, а не приставка.
Мысля:
ex - e в степени икс, сокращенно "екс", для удобства преобразовали в "экс" :D

0
Байт
03.02.2015, 10:48     Алгоритм генерации всех комбинаций
  #11

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Прям вот с буквой "т"?
Понял. Стыдно стало...:cry:
Век учись...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2015, 10:48

Алгоритм генерации всех возможных цепочек 0 и 1
Всем доброго времени суток! Во время написания диплома потребовалось написать программу следующего...

Перебор всех комбинаций
Здравствуйте, подскажите как переделать этот код, что бы он начинал с нужной длины строки?...

Алгоритм перебора разных комбинаций простых чисел
Доброго времени суток! Решаю разнообразные задачки по программированию, попалась вот такая: ...

Сортировка всех возможных комбинаций 4 из 8
Задача состоит в том, что бы сложить 4 элемента массива, который состоит из 8 элементов, во всех...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru