Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414

Генерация последовательностей

11.08.2022, 11:47. Показов 2982. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача интересная попалась, как сгенерировать всевозможные последовательности длиной 10 символов состоящих из чисел от 0 до 6.помогите с грамотным условием…
То есть подходит 0123456012, а 0123456701 уже отбрасывается.
C
1
2
3
4
5
6
7
8
9
10
char text[10];
for(int i=0; i < 10000000000; i++)
{
if((i >=7 & i >=9)||)
continue;
itoa (i, text, 10);
for(int j =0; j< 10; j++)
printf(%c”, text[j]);
printf(“\n”);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2022, 11:47
Ответы с готовыми решениями:

Генерация последовательностей
Напишите программу, которая во всех возможных последовательностях длиной три, составленных из четырёх различных букв, находит позицию...

Генерация последовательностей
Подскажите как писать коды с генерацией последовательностей, никак не могу понять. Напишите программу, которая выводит все возможные...

Нерекурсивная генерация всех последовательностей из 0 и 1 длины k
Не могу придумать, как написать этот алгоритм. Помогите пожалуйста : идеи будет достаточно :)

33
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
12.08.2022, 18:09
Студворк — интернет-сервис помощи студентам
https://www.cyberforum.ru/atta... 1660316864
Я не то, что бы ни чё не понял, да оно ещё и не работает.
Вы все на телефонах пишите, что ли?
Миниатюры
Генерация последовательностей  
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
12.08.2022, 18:12
C++
1
2
3
int GetDigit(int k)
{// Возвращает по одной цифре из числа
    static unsigned long long mat = 10000000000;
=================== У меня ошибочка конечно. Наверное здесь бы хватило unsigned long...
C++
1
2
3
int GetDigit(unsigned long long k)
{// Возвращает по одной цифре из числа
    static unsigned long long mat = 10000000000;
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
12.08.2022, 18:25
Где то так выводит...
Изображения
 
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
12.08.2022, 19:02
Я не очень умный,
можно я с этим колупаться не стану?
0
Заблокирован
13.08.2022, 09:07
JIupToH, так перебором пароли не взламываются, хороший алгоритм предложен в х.ф."SwordFish"
0
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
14.08.2022, 22:49  [ТС]
Biger18, спасибо за советы, но вот у меня получилось решить ее так... Но можете подсказать как можно ее распараллелить и вывести данные в файлы?

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
bool combo(vector <int>& a, int n, int m) {
    int j = m - 1;
    while (j >= 0 && a[j] == n) j--;
    if (j < 0) return false;
    if (a[j] >= n)
        j--;
    a[j]++;
    if (j == m - 1) return true;
    for (int k = j + 1; k < m; k++)
        a[k] = 0;
    return true;
}
void print(vector <int> a)
{
    for (int i = 0; i < a.size(); i++)
        printf("%d\t", a[i]);
    printf("\n");
}
int main(){
vector <int> iv;
iv.resize(10);
while (combo(iv, 6, 10);
print(iv);
return 0;
}
Добавлено через 23 минуты
Как я понимаю для этого есть библиотека
C++
1
<gmp.h>
, и директива...
C++
1
#pragma omp parallel
Но она применяется для цикла for. А как быть с циклом while?
0
Заблокирован
15.08.2022, 02:06
это ветка K&R C ?
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
19.08.2022, 18:43
Байт все верно написал. 7^10 комбинаций.

C
1
2
for( int i = 0 ; i < 49*49*49*49*49 ; ++i )
   itoa( i, buf, 7 ); // если у вас есть такая
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
19.08.2022, 23:14

А она не округляет?
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
19.08.2022, 23:40
Помню функция to_string, разряды отбрасывала.
Просто int здесь не катит.
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
20.08.2022, 00:00
Цитата Сообщение от Наталья8 Посмотреть сообщение
А она не округляет?
Не округляет - там округлять нечего, целые числа. Функция нестандартная, корявая ибо размер буфера не указывает.

Но и нули впереди не ставит, поэтому вместо 0..(710-1) я бы писал 710..(2*710-1) и отбросил первую цифру
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
20.08.2022, 00:49
Я когда то, чем то подобным на бильдере баловался.
----- Из тетрадки моей ---
(если хочеш вывести на экран в HEX виде или в двоичном)
__int64 -64 битная переменная вмещающая огромное число
C++
1
2
3
4
5
 __int64 value =StrToInt64(Edit2->Text);
char buffer[50];    //-- 
_i64toa(value, buffer, 16 );//число= 16 в шестнадцатеричных... 
                            //--10 в десятичных 2- в двоичных и.т.д.
Label4->Caption=String(buffer)+" . Hex";
=============
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
20.08.2022, 23:14
JIupToH,
Я озаботился вашим творчеством. Работает раз в десять медленнее ,
чем у assemberist,

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
// Один вызов, меняеться одна цифра. Если цифра шесть, то в лево увеличить на один
// а в право бросает нули
bool combo(int *a, int num, int digits) {
    
    int j = digits - 1;
    while (a[j] == num) j--;// Если максимум в ячейке, то влево
                        if (j < 0) return false;// Конец (end program)
        a[j]++;
for (int k = j + 1; k < digits; k++) a[k] = 0;// Расставить нули с права(0020000000)
                                    return true;
}
 
//---------------Beep(4000, 5); Sleep(500);
void print(int *a, int cnt)
{
    for (int i = 0; i < cnt; i++)
        printf("%d", a[i]);
    printf("\n");
}
 
 
int main(){
    
const int digits(10), num(6);
//------- регистр, порядок счётчика
int fgh[digits]{};
while(combo(fgh, num, digits))
    print(fgh, digits);
 
    return 0;
}
Я уж и на инты перевёл с вектора. Не помогает.
Наверное из за поцифрового отображения.
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
21.08.2022, 13:21
Цитата Сообщение от JIupToH Посмотреть сообщение
Как я понимаю для этого есть библиотека
<omp.h> Если не ошибаюсь. Но может <gmp.h> просто другая реализация, от Гугла например, лень проверять.
Насчет OMP не уверен что она сможет распараллелить настолько сложную конструкцию без преобразования. Я, конечно, не специалист, но, кажется, конструкции с циклами do/while и for без явного итератора не параллелятся OMP.

Если нужно записывать вывод в несколько файлов, то резоннее организовывать его в виде пакетов вместо того чтобы отправлять в файл по одному числу. Также это позволяет снизить количество вызовов функции вывода, что тоже плюс. Ну и поскольку запись в файл производится болчным устройством, а не процессором, вроде можно параллельно формировать и отправлять пакеты в файлы с помощью гипертрейдинга (пока блочное устройство записывает пакет, ядро процессора формирует новый).

Но, опять же, я - не специалист в распараллеливании так что более конкретной информации я не дам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.08.2022, 13:21

Генерация различных последовательностей случайных чисел в диапазоне от 0 до 1
У меня есть рабочая функция генерации псевдослучайных чисел в диапазоне от 0 до 1, это происходит в переменной k. Но есть существенный...

Объединение последовательностей
Объединение последовательностей Даны две бесконечных возрастающих последовательности чисел A и B. i-ый член последовательности A равен...

Обработка последовательностей
Последовательность данных не всегда нужно сохранять в памяти. Поэтому нужно уметь обрабатывать последовательность по мере поступления ее...

генератор последовательностей
Сгенерировать последовательность из 30 случайных чисел с нормальным законом распределения mx=2, dx=4 и последовательность из 70 случайных...

Похожесть последовательностей
Здравствуйте помогите пожалуйста решить. Задание Рассмотрим две последовательности A и B, содержащие по N элементов .Сумма...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
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
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru