Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Cvetochek
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 2
#1

На телефоне есть поле из 12 точек: 3х4,сколько существует комбинаций, если палец должен пройти 8 отрезков? - C++

10.06.2014, 09:52. Просмотров 449. Ответов 1
Метки нет (Все метки)

мальчики помогите, не могу решить задачу. очень нужна ваша помощь.
На телефоне есть поле из 12 точек: 3х4, по которому проводят пальцем неотрывную линию, чтобы разблокировать экран.
(Такая же как на андроиде блокировка экрана с помощью графического ключа (swipe), только там 3х3).

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

Вопрос: сколько существует комбинаций, если палец должен пройти 8 отрезков?
Пожалуйста напишите программу, которая вычисляет комбинации, буду очень рада и благодарна)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 09:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос На телефоне есть поле из 12 точек: 3х4,сколько существует комбинаций, если палец должен пройти 8 отрезков? (C++):

Сколько различных комбинаций существует? - Теория вероятностей
1) В ящике лежат 7 различных пар носков. Мальчик наудачу выбирает 2 носка. Сколько различных комбинаций соответствует данному опыту?

Дано множество точек на плоскости. Сколько можно на данном множестве точек построить отрезков, перпендикулярных оси OY - C#
помогите с задачкой Дано множество точек на плоскости. Сколько можно на данном множестве точек построить отрезков, перпендикулярных оси...

Модуль минимальной скорости, которую должен иметь электрон, чтобы пройти магнитное поле - Электричество и магнетизм
Однородное магнитное поле, модуль индукции которого В=10мТл, создано между двумя параллельными плоскостями, расстояние между которыми...

Сколько существует комбинаций пароля длинной n из N возможных символов? - Комбинаторика
а) Если символы могут повторяться (возможно, как n>N, так и n<N). б) Если символы не могут повторяться (тогда, естественно, n<=N). ...

Определить, сколько существует различных комбинаций по размещению цифр в 8 ячейках - QBasic
Уважаемые специалисты! Нужна помощь. Задача: Есть 8 ячеек. Есть 5 цифр: 1,2,3,4,5 Сколько существует различных комбинаций по...

Сколько существует комбинаций чисел, таких, что каждая его цифра меньше, либо равна предыдущей - Комбинаторика
Сколько существует комбинаций чисел, таких, что каждая его цифра меньше, либо равна предыдущей? При этом первая цифра не равна 0.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
10.06.2014, 23:46 #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
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
/////////////////////////////////////////////////////////////////////////////////////////
//На телефоне есть поле из 12 точек: 3х4, по которому проводят пальцем неотрывную линию, чтобы разблокировать экран.
//(Такая же как на андроиде блокировка экрана с помощью графического ключа (swipe), только там 3х3).
//
//Правила: палец можно поставить на любую точку и вести в любом направлении вверх, вниз, влево, вправо.
//1. Палец нельзя отрывать, но можно проводить по тем же точкам и линиям сколько угодно раз.
//2. Нельзя проводить линии по диагонали.
//
//Вопрос: сколько существует комбинаций, если палец должен пройти 8 отрезков?
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
int  get_combinations_count_for_matr_with_sizes_and_pos_and_steps_count
    (
        int     rows_total,
        int     cols_total,
        int     row,
        int     col,
        int     steps_count
    )
{
    if( steps_count == 0 )
    {
        return  1;
    }
 
    int     res     =   0;
 
    if( row > 0 )
    {
        res     +=  get_combinations_count_for_matr_with_sizes_and_pos_and_steps_count
                        (
                            rows_total,
                            cols_total,
                            row - 1,
                            col,
                            steps_count - 1
                        );
    }//if
 
    if( row < rows_total - 1 )
    {
        res     +=  get_combinations_count_for_matr_with_sizes_and_pos_and_steps_count
                        (
                            rows_total,
                            cols_total,
                            row + 1,
                            col,
                            steps_count - 1
                        );
    }//if
 
    if( col > 0 )
    {
        res     +=  get_combinations_count_for_matr_with_sizes_and_pos_and_steps_count
                        (
                            rows_total,
                            cols_total,
                            row,
                            col - 1,
                            steps_count - 1
                        );
    }//if
 
    if( col < cols_total - 1 )
    {
        res     +=  get_combinations_count_for_matr_with_sizes_and_pos_and_steps_count
                        (
                            rows_total,
                            cols_total,
                            row,
                            col + 1,
                            steps_count - 1
                        );
    }//if
 
    return  res;
}
/////////////////////////////////////////////////////////////////////////////////////////
int  get_combinations_total_for_matr_with_sizes_and_steps_total
    (
        int     rows_total,
        int     cols_total,
        int     steps_total
    )
{
    int     res  =   0;
 
    for( int  i = 0; i < rows_total; ++i )
    {
        for( int  j = 0; j < cols_total; ++j )
        {
            res  +=  get_combinations_count_for_matr_with_sizes_and_pos_and_steps_count
                            (
                                rows_total,
                                cols_total,
                                i,
                                j,
                                steps_total
                            );
        }//for
    }//for
 
    return  res;
}
/////////////////////////////////////////////////////////////////////////////////////////
void  print_prompt_and_input_val_not_less_than
        (
            T_str   const   &   prompt,
            int             &   val,
            int                 left_round
        )
{
    do
    {
        std::cout   <<  prompt;
        std::cin    >>  val;
    }
    while( val < left_round );
}
/////////////////////////////////////////////////////////////////////////////////////////
int  main()
{
    std::locale::global(std::locale(""));
 
    for(;;)
    {
        std::cout   <<  "Введите размеры матрицы:"
                    <<  std::endl;
 
        int     rows_total  =   0;
 
        print_prompt_and_input_val_not_less_than
            (
                "\tчисло строк\t: ",
                rows_total,
                0
            );
 
        int     cols_total  =   0;
 
        print_prompt_and_input_val_not_less_than
            (
                "\tчисло столбцов\t: ",
                cols_total,
                0
            );
 
        int     steps_total  =   0;
 
        print_prompt_and_input_val_not_less_than
            (
                "\tчисло шагов\t: ",
                steps_total,
                0
            );
 
        std::cout   <<  std::endl
                    <<  "Число комбинаций равно\t"
                    <<  get_combinations_total_for_matr_with_sizes_and_steps_total
                            (
                                rows_total,
                                cols_total,
                                steps_total
                            )
 
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }//for
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 23:46
Привет! Вот еще темы с ответами:

Сколько точек пересечения отрезков находится внутри окружности? - Комбинаторика
• На окружности отмечены 10 точек. Каждая пара точек соединена отрезком. Сколько точек пересе- чения отрезков находится внутри окружности?

За сколько часов можно пройти 40 км, если идти 5 км /час - VBA
Расстояние от города А до города Б 40 км.За сколько часов можно дойти из А в Б,если идти 5 км /час.(сделать окно, куда можно вводить любое...

Курсор, который должен вставлять строки, если их еще не существует - Oracle
Существует курсор, который должен записывать в таблицу reg_med1 строчки со столбцами code_oper и is_active, если этого code_oper не...

На прямой взяты p точек, а на параллельной ей прямой ещё g точек. Сколько существует треугольников - Комбинаторика
На прямой взяты p точек, а на параллельной ей прямой ещё g точек. Сколько существует треугольников, вершинами которых являются эти ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru