Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349

Генерации вариаций из слова

03.09.2015, 20:48. Показов 1063. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть
string str = "путин";
П У Т И Н
1 2 3 4 5
int n = int.Parse(textBox1.Text); // количество генераций
int l = int.Parse(textBox1.Text); // количество символов в вариациях при генерации
В richTextBox1 вывести созданные вариации, а richTextBox2 в цифровом виде.
Без повторений... 11 и ещё раз 11 не должно быть.

У самого ересь получается полная.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2015, 20:48
Ответы с готовыми решениями:

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

Решить ДУ методом вариаций
Здравствуйте, уважаемые форумчане! Помогите пожалуйста с диффуром. Я начала его решать, не знаю правильно или нет, остановилась на этапе...

Размах вариаций и Дисперсия
Добрый день, помогите пожалуйста разобраться с вот такой штукой. R - размах вариаций который показывает численный диапазон элементов. D...

5
03.09.2015, 22:38

Не по теме:

а теперь медленно и по слогам, что должно получиться из путина:D

0
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349
04.09.2015, 09:06  [ТС]
Рядовой, если L будет 2, то вариации ис букв нашего слова
пу, ти, ин, ну и д.р.
И в числах
12, 34, 45, 52 (соответствует вариациям, которые я выше написал, только в числах). У каждой буквы свое число, в 1 сообщении написал.
0
127 / 121 / 68
Регистрация: 27.08.2015
Сообщений: 232
04.09.2015, 13:13
Вам нужно смотреть в сторону сочетаний - с повторениями или без. Например, наборы {П, У} и {У, П} считаются одинаковыми или разными?
И что будет, если в слове найдутся повторяющиеся буквы? МОЛОКО? Буквы O на разным позициях формируют одинаковые наборы или разные? ({О[2], O[4]}, {О[4], O[6]})
В интернете полно такого кода, например, Создать метод на C# для выбора сочетаний элементов массива
Для сочетаний без повторений и с различающимися повторяющимися буквами это может выглядеть так:
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
    static class Program
    {
        /// <summary>
        /// Возвращает все сочетания без повторений.
        /// </summary>
        public static IEnumerable<IEnumerable<T>> Combinations<T>(this IEnumerable<T> elements, int k)
        {
            return k == 0 ? new[] { new T[0] } :
              elements.SelectMany((e, i) =>
                elements.Skip(i + 1).Combinations(k - 1).Select(c => (new[] { e }).Concat(c)));
        }
 
        /// <summary>
        /// Символ строки с его позицией (порядковым номером).
        /// </summary>
        class CharWithPos
        {
            public CharWithPos(char ch, int pos)
            {
                Ch = ch;
                Pos = pos;
            }
 
            public char Ch { get; private set; }
            public int Pos { get; private set; }
        }
 
        static void Main(string[] args)
        {
            string str = "путин".ToUpper(); // Приводим строку к верхнему регистру.
 
            // Из строки делаем массив из букв с их позициями.
            CharWithPos[] arr = new CharWithPos[str.Length];
            for (int i = 0; i < str.Length; ++i)
                arr[i] = new CharWithPos(str[i], i);
 
            var result = Combinations(arr, 2); // Основная функция.
 
            // Вывод результата.
            foreach (var line in result)
            {
                foreach (var charWithPos in line)
                {
                    Console.Write("{0}[{1}] ", charWithPos.Ch, charWithPos.Pos);
                }
                Console.WriteLine();
            }
        }
    }
0
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349
04.09.2015, 14:30  [ТС]
Moloch, да. Я тоже так начал делать.
У повторяющейся буквы в слове цифра должна быть только у первой.
М О Л О К О
1--2-3---4

Добавлено через 2 минуты
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = null;
            richTextBox2.Text = null;
            string str = textBox3.Text.ToLower();
            int n = int.Parse(textBox1.Text); // количество
            int l = int.Parse(textBox2.Text); // длина
            Combinations(str, l, n);
        }
 
        public void Combinations(string str, int l, int n)
        {
            int[] a = new int[l]; // массив вариаций с длиной l
            int j = 0;
            while (j < n)
            {
                j++; // счётчик для каждой строки
                richTextBox1.Text += j + ": ";
                string[] strCopy = new string[50];
                foreach (int element in a)
                {
                    richTextBox1.Text += "" + str[element];
                }
                richTextBox1.Text += "\n";
                Thread.Sleep(10);
                a[a.Length - 1]++;
                for (int i = (a.Length - 1); i >= 0; i--)
                {
                    if (a[i] > (str.Length - 1))
                    {
                        a[i] = 0;
                        a[--i]++;
                        i++;
                    }
                }
            }
        }
    }
}
Я пока не сделал, чтобы в richtextbox2 выводились в цифровой форме.
0
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349
04.09.2015, 21:03  [ТС]
Помогите исправить. Происходит смещение индекса.
Мне нужно именно с 1~
1: 111
2: 112
3: 113
4: 114
...
Так там должно быть.

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = null;
            richTextBox2.Text = null;
            string str = textBox3.Text.ToLower();
            int n = int.Parse(textBox1.Text); // количество
            int l = int.Parse(textBox2.Text); // длина
 
            string[] strN = new string[str.Length + 1];
            for (int i = 1; i < str.Length + 1; i++)
            {
                strN[i] = Convert.ToString(i);
                //richTextBox2.Text += strN[i] + " ";
            }
 
            Combinations(str, l, n);
            CombinationsN(strN, l, n);
        }
 
        public void CombinationsN(string[] strN, int l, int n)
        {
            int[] b = new int[l]; // массив вариаций с длиной l
            int j = 0;
            while (j < n)
            {
                j++; // счётчик для каждой строки
                richTextBox2.Text += j + ": ";
                foreach (int element in b)
                {
                    richTextBox2.Text += "" + strN[element];
                }
                richTextBox2.Text += "\n";
                Thread.Sleep(10);
                b[b.Length - 1]++;
                for (int i = (b.Length - 1); i >= 0; i--)
                {
                    if (b[i] > (strN.Length - 1))
                    {
                        b[i] = 1;
                        b[--i]++;
                        i++;
                    }
                }
            }
        }
 
        public void Combinations(string str, int l, int n)
        {
            int[] a = new int[l]; // массив вариаций с длиной l
            int j = 0;
            while (j < n)
            {
                j++; // счётчик для каждой строки
                richTextBox1.Text += j + ": ";
                foreach (int element in a)
                {
                    richTextBox1.Text += "" + str[element];
                }
                richTextBox1.Text += "\n";
                Thread.Sleep(10);
                a[a.Length - 1]++;
                for (int i = (a.Length - 1); i >= 0; i--)
                {
                    if (a[i] > (str.Length - 1))
                    {
                        a[i] = 0;
                        a[--i]++;
                        i++;
                    }
                }
            }
        }
    }
}
Миниатюры
Генерации вариаций из слова  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2015, 21:03
Помогаю со студенческими работами здесь

Генератор вариаций слов
Здравствуйте, уважаемые! Помогите, пожалуйста, чем можете. Задача: необходимо создать генератор вариаций слов. Пример: ...

Проинтегрировать методом вариаций
Прошу Вас помогите решить данные дифференциальные уравнения, я понятия не имею о дифференциальных уравнениях =((( ...

Защититься от перехвата всех вариаций DefineClass
Здравствуйте, я не особо шарю в C++. Что может значит эта строка &quot;Защититься от перехвата всех вариаций DefineClass&quot;?

Решить дифференциальное уравнение методом вариаций
Решить дифференциальное уравнение методом вариаций y'(x)\cdot ({x}^{2}-1)-x\cdot y(x)={x}^{3}-x

Woocommerce програмное обновление запасов вариаций товаров
Здравствуйте. Подскажите, как можно изменить запасы у вариаций товара. Знаю как получить массивы со списком свойств вариаций, но не знаю...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru