С Новым годом! Форум программистов, компьютерный форум, киберфорум
Комбинаторика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,611

Расчёт формулы 3 буквы 3 символа длина строки, сколько вариантов если больше 2 подряд не повторяются

21.11.2015, 03:36. Показов 4636. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот есть 3 символа abc (можно в виде цифр 123 так считать удобней)
В строке может быть 3 символа, и варианты не повторяются.

Таким образом вариантов всего 27. 3 в степени 3.

Условие 1, в строке не могут находиться больше 2х одинаковых букв.
Условие 2, в строке подряд не может быть больше 1й одинаковой буквы.


Code
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
1   aaa     111
2   aab     112
3   aac     113
4   aba     121
5   abb     122
6   abc     123
7   aca     131
8   acb     132
9   acc     133
10  baa     211
11  bab     212
12  bac     213
13  bba     221
14  bbb     222
15  bbc     223
16  bca     231
17  bcb     232
18  bcc     233
19  caa     311
20  cab     312
21  cac     313
22  cba     321
23  cbb     322
24  cbc     323
25  cca     331
26  ccb     332
27  ccc     333
1 = 24
2 = 3

Букв 4 abcd, букв в строке 3, условия те же.

Вариантов всего 64.

Условие 1 = ?
Условие 2 = ?

М, даже подсказали что есть такие:
http://hijos.ru/izuchenie-mate... yucheniya/

Но я школу бросил в 5 классе...

Хотя бы ткните где читать?

Надо было в разделе комбинаторики тему создавать...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2015, 03:36
Ответы с готовыми решениями:

Вывести первые три символа и последний три символа, если длина строки больше 5
Дана строка. Вывести первые три символа и последний три символа, если длина строки больше 5. Иначе вывести первый символ столько раз,...

если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы "."
Дана строка S и число N. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые...

Вывести буквы строки и определить, сколько раз они повторяются
Нужна программа: Запросить ввод строки состоящей из маленьких английских букв и потом в отдельной строке вывести все эти буквы и сколько...

3
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2015, 08:55
Лучший ответ Сообщение было отмечено артист как решение

Решение

Цитата Сообщение от артист Посмотреть сообщение
2 = 3
Этто ты плохо посчитал. Я вот нашел 12 слов, удовлетворяющих условию 2.

Добавлено через 2 минуты
abcd условие 1. Тут легче посчитать противоположное. Их будет 4*4*2 - 4 = 28 (считал методом включений-исключений). Ответ: 64 - 28 = 36

Добавлено через 2 минуты
Условие 2: 4*3*3 = 36

Добавлено через 2 минуты
Прошу прощения. abcd-1 я посчитал в предположении, что в строке 4 буквы. Видимо, не проснулся еще
Если длина строки = 3, тогда еще проще. "Плохих" - 4. Хороших - 60

Добавлено через 1 минуту
Цитата Сообщение от артист Посмотреть сообщение
Хотя бы ткните где читать?
Для этих задачек даже особого чтения не нужно. Просто немножко здравого смысла.
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,611
21.11.2015, 22:04  [ТС]
Я пробовал получить номер варианта по имеющейся строке:

Например строка aba = 121, нужно получить цифру 13.

Здравый смысл мне говорил, что тут просто нужно возводить в степень меняя множитель.

Ведь общее количество выводится как

3 * 3 * 3

(1 * 3) + (2 * 3) + (1 * 3)
3 + 6 + 3 = 12

И ещё исписал кучу махинаций проводил: так и не сошлось
Кликните здесь для просмотра всего текста
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
cca - код?
 
220
 
1 * (3 - 0) = 3
3 * (3 - 2) = 3
3 * (3 - 2) = 3
 
 
 1 + (0 + 1 * 3) = 2     0
 2 + (2 + 1 * 3) = 11    1
11 + (2 + 1 * 3) = 20    2
 
 
 1 + (0 + 0 * 3) = 1     0
 1 + (2 + 1 * 3) = 10    1
10 + (2 + 2 * 3) = 22    2
 
 
 1 + (0 + 1 * 3) = 3     0
 3 + (2 + 2 * 3) = 15    1
15 + (2 + 3 * 3) = 30    2
 
 1 + (0 + 1 * 3) = 3     0
 3 + (2 + 2 * 3) = 15    1
15 + (2 + 3 * 3) = 30    2
 
 
1 * 3 - (3 - 1) = 
 
 
1 * 3 = 3
3 * 3 = 9
9 * 3 = 27
 
 
1 * 3 = 3
3 * 3 = 9
9 * 3 = 27
 
1 * 3 - 0
3 * 3 - 2
 
 
 
 
1 * 3
3 * 3
7 * 3
 
0 
1 
2
 
 
3
6
 
1 * 3 = 3
2 * 3 = 6
2 * 3 = 6
 
0 + 0 * 3 0
1 + 2 * 3 9
2 + 2 * 3 
 
 
1 3 * 2 3 * 1
 
abc
 
i = 2, c = 0 = 0
i = 1, c = 2 = 2
i = 0, c = 2 = 0
 
3 * 3 + 3 * 3 / 2 * 2 = 
 
 
 
 
 
110
 
1
 
 
1 + 0 + (0 * 3)
1 + 1 + (1 * 3)
5 + 1 + (2 * 3) = 12
 
1 + 2 + (0 * 3)
3 + 0 + (1 * 3)
6 + 2 + (1 * 3) = 11
 
1 - 0 + 0 * 3 = 1
1 - 1 + 1 * 3 = 3 
6 - 2 + 1 * 3 = 21 
 
 
 
221 - код строки
 
(2 * 3) + (2 * 3) + 1 = 6 + 6 + 3 = 13
 
122
 
следующее число должно умножаться на алфавит.
 
 
1 + ()
 
(3 * 3) * 
9 + 6 + 2 = 17



Т.е. формула будет выглядеть так?

Пусть будет:

d - длина строк
k - количество символов
u1 - условие 1
u2 - условие 2

f1 = d * k * u1 - d

f2 = k * d * d * u2

И с учётом обоих условий
F = (f1 > f2 ? f2 : f1)

Добавлено через 3 часа 48 минут
Длина строки 4.
Букв тоже 4.

Всего вариантов 256.

Условие 1 - одинаковых символов в строке не более 2х.
Условие 2 - одинаковых символов подряд не более 1го.

У1 = 204
У2 = 108

Это программой посчитано.

А это вручную:

f1 = 256 - (4 * 4 * 2 - 4) = 228
f2 = 4 * 4 * 4 = 64

Не сходится (

Добавлено через 29 минут
Заранее просчитал:

Строка = 5
Букв = 5
Вариантов = 3125

У1 = Сколько одинаковых букв может быть в строке? (Ответ)
У2 = Сколько одинаковых букв может быть подряд? (Ответ)

У1 = 1 (120)
У1 = 2 (2220)
У1 = 3 (3020)
У1 = 4 (3120)

У2 = 1 (1280)
У2 = 2 (2800)
У2 = 3 (3080)
У2 = 4 (3120)
________________________________________ ____________________________________
|_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ \|/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_|

Строка = 10
Букв = 5
Вариантов = 9765625

У1 = Сколько одинаковых букв может быть в строке? (Ответ)
У2 = Сколько одинаковых букв может быть подряд? (Ответ)

У1 = 1 (0)
У1 = 2 (113400)
У1 = 3 (4229400)
У1 = 4 (8166900)
У1 = 5 (9454620)
У1 = 6 (9723420)
У1 = 7 (9761820)
У1 = 8 (9765420)
У1 = 9 (9765620)

У2 = 1 (1310720)
У2 = 2 (7348480)
У2 = 3 (9315200)
У2 = 4 (9687520)
У2 = 5 (9752500)
У2 = 6 (9763500)
У2 = 7 (9765300)
У2 = 8 (9765580)
У2 = 9 (9765620)

Добавлено через 3 часа 21 минуту
a = 5 a! = 120
b = 5 b! = 120

c = 1 c! = 1
c = 2 c! = 2
c = 3 c! = 6
c = 4 c! = 24

и есть просто 3125

Нужны числа:
120
2220
3020
3120

120 * 120 / 1 = 14400 - 3125 = 11275 / 120 = 93,95833333333333
120 / 120 * 1 = 1
120 / 120 * (5 - 5)! = 0
120 / 1 * (5 - 1)! = 480
1 / 120 * (1 - 5)! = 0

120 * 120 / (5 - 1)! = 14400 / 24 = 600

120 + 120 = 240 / (1 + 1) = 120
240 / (2 + 1)

a! + b! / (c + 1) = 120
a! + b! *

Вообще никак не сходится...
0
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,611
19.03.2017, 21:26  [ТС]
Перечитал несколько раз, и понял, наконец-то. ))

Для обоих условий:
множителей должно быть столько, сколько символов в строке.
1й множитель всегда равен количеству символов.

Для 1го условия(количество одинаковых символов в строке), нужно использовать перестановки(факториалы).
Если символов 5, и длина строки тоже 5, но одинаковых символов в строке может быть только 1:
1й множитель - это общее количество символов.
2й множитель - это общее количество символов - 1, т.к. 1н символ уже был использован.
Далее от общего количества символов отнимается количество использованных символов.
Получается вот так:
5*4*3*2*1=120 вариантов(всё правильно).

Если символов было бы 6, длина строки 5, одинаковых так же только 1, получилось бы:
6*5*4*3*2=720 вариантов(не известно верно ли).

Теперь, если символов 5, и длина строки тоже 5, но одинаковых символов в строке может быть только 2:
Тут так же 5 множителей, 1й множитель так же количество символов.
2й множитель тоже равен количеству символов, т.к. не нарушает условие.
3й уже будет иметь количество символов - 1, т.к. 1 символ уже использован.
2й как 3й, т.к. не нарушает условие.
1й - отнимаем от общего количества символов уже 2, т.к. использовали 2 символа.
Получается, отнимаем 1 символ через 2:
5*5*4*4*3=1200 вариантов(не сходится).

Я вроде всё правильно понял, но должно было быть 2220 вариантов.
Либо правильный ответ не верный...

Для 2го условия(количество одинаковых символов подряд), нужно использовать возведение в степень.
Если символов 5, и длина строки тоже 5, но одинаковых символов подряд в строке может быть только 1:
1й множитель - это общее количество символов.
2й множитель - это общее количество символов -1, т.к. 1 символ уже был.
3й множитель - это общее количество символов -1, т.к. 1 символ уже был использован в предыдущей "ячейке".
И т.д. получается:
5*4*4*4*4=1280 вариантов(всё правильно).

Теперь если символов 5, и длина строки тоже 5, но одинаковых символов подряд в строке может быть только 2:
1й множитель - это общее количество символов.
2й множитель - это тоже общее количество символов, т.к. не нарушает условия.
3й множитель - это общее количество символов - 1, т.к. 1 символ уже использован.
2й множитель - это тоже общее количество символов - 1, т.к. не нарушает условия.
1й множитель - это общее количество символов - 1, т.к. 1 символ уже использован.
Получается:
5*5*4*4*4=1600 вариантов(не сходится).

Вроде тоже всё правильно делаю, а должно было получиться 2800 вариантов.

Сейчас программу заново перепишу, которой "правильные" ответы искал...

Добавлено через 1 час 24 минуты
Нет, эталоны правильно посчитаны, что-то я упустил...
Только на 1 в обоих условиях правильно.
Может нужно при 2х 1цу прибавлять куда-то...

Потому, как если взять 3 символа и длину строки в 3, для первого условия никак не получается 24, хоть как их умножай...

Добавлено через 34 минуты
Либо считать все не подходящие под условия варианты и отнимать от общего количества...
Но тут вообще не понятно как это делать.
3 символа, длина строки 3, в строке может быть не более 2х одинаковых - не подходящих под условие 3. Всего 27. Итого 24 варианта.
3+3/2=3
3*2/3=3

4 символа, длина строки 3, в строке может быть не более 2х одинаковых - не подходящих под условие 4. Всего 64. Итого 60 вариантов.
4+3/2=3,5
4*2/3=2,6

Собственно для 3х символьной строки, "плохими" вариантами будут равные общему количеству символов...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2017, 21:26
Помогаю со студенческими работами здесь

Сколько чисел можно образовать из цифр 0,2,4,8, если цифры повторяются\не повторяются?
Сколько чисел можно образовать из цифр 0,2,4,8, если цифры повторяются\не повторяются?

Из строки удалить среднюю букву , если длина строки нечетная , если четная - удалить две средние буквы
Из строки удалить среднюю букву , если длина строки нечетная , если четная - удалить две средние буквы

Скопировать из первого файла во второй все строки, длина которых больше 1 символа
Написать программу, открывающую один текстовый файл (file1.txt) на чтение, и другой текстовый файл (file2.txt) на запись. Программа должна...

EAccessViolation, если длина строки больше 14
Здравствуйте! Сперва простой код: void cyr_print(const char* text) { const int n = strlen(text); char *buf = new char; ...

Если длина введенной строки четная, удалить 2 первых и 2 последних символа.
Если длина введенной строки четная, удалить 2 первых и 2 последних символа. помогите решить плиз


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru