Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 30.12.2010
Сообщений: 3
1

"О велосипедном замке" на C#

03.01.2011, 16:49. Просмотров 1120. Ответов 3
Метки нет (Все метки)


Никто случайно не имеет текста программы. "Задача о велосипедном замке" на С#.
А то думал эт несложная тема для курсача, а оказалось наоборот.
Я еще тупанул и создал такуюже тему в разделе C++, мне походу дали текст программы в C++, но никаким макаром я немогу её привести в нужную форму для C#.

Текст на 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
#include <stdio.h>
#include <malloc.h> 
 
void rec(int *a, int col_0, int n, int i)
{
        if(col_0>n/2)
                return;
        if(i==n)
        {
                for(int j=0; j<n; j++)
                        printf("%d", a[j]);
                printf("\n");
                return;
        }
        a[i]=0;
        rec(a, col_0+1, n, i+1);
        a[i]=1;
        rec(a, col_0, n, i+1);
}
 
int main()
{
        int n, *a;
        printf("N= ");
        scanf("%d", &n);
        a=(int*) malloc(n*sizeof(int));
                rec(a, 0, n, 0);
        return 0;
}
Суть программы:
комбинационный замок для велосипеда, состоящий из набора N переключателей, каждый из которых может быть в положении «вкл» или «выкл». Замок открывается только при одном наборе положений переключателей, из которых не менее N/2 (целая часть от N/2) находятся в положении «вкл». Предположим, что мы забыли эту комбинацию, а нам надо отпереть замок. Предположим также, что мы готовы перепробовать (если необходимо) все комбинации. Нам нужен алгоритм для систематического генерирования этих комбинаций. Если проигнорировать условие N/2, то для замка существует 2 возможных комбинаций. (Покажите, что это так.) Неплохие шансы иайти правильную комбинацию могут быть при N10. Однако условие N/2 позволит отбросить (или лучше не генерировать) многие комбинации.

Промоделируем каждую возможную комбинацию вектором из нулей и единиц. На i-м месте будет 1, если г-й переключатель находится в положении «вкл», и О, если i-й переключатель -• в положении «выкл». Множество всех возможных Л-векторов хорошо моделируется с помощью двоичного дерева. Каждая вершина k-ro Уровня этого дерева будет соответствовать определенному набору первых k компонент yV-вектора. Две ветви, идущие вниз из вершины этого уровня, соответствуют двум возможным значениям (&+1)-й компоненты в /V-векторе. У дерева будет уровней. Рис. на примере N=4 поясняет основную конструкцшс).

Условие, заключающееся в том, что число переключателей в положении «вкл» должно быть не меньше [. N/2 , позволяет нам не образовывать части дерева, которые не могут привести к правильной комбинации. Например, рассмотрим вершину 00 на рис.. Так как правая ветвь (к ООО) не может привести к допустимой комбинации, нет нужды ее формировать. Если какие-то вершины, следующие за рассматриваемой вершиной, не удовлетворяют ограничению задачи, то эти вершины не надо рассматривать. В данном случае никакие из вершин, находящихся внутри пунктирных линий, не нужно исследовать и даже формировать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2011, 16:49
Ответы с готовыми решениями:

Ошибка после конвертации метода на С++ к С#: "Неявное преобразование типа "int" в "bool" невозможно"
Ошибка после преобразования метода на С++ к С#: &quot;Неявное преобразование типа &quot;int&quot; в &quot;bool&quot;...

Ошибка CS0019: Оператор "*" не может применяться к операндам типа "decimal" и "float"
Здравствуйте! Писал приложение и наткнулся на интересную ошибку (честно говоря, я не совсем понимаю...

Оператор ">" невозможно применить к операнду типа "IContainer" и "<NULL>".
// Оператор &quot;&gt;&quot; невозможно применить к операнду типа &quot;IContainer&quot; и &quot;&lt;NULL&gt;&quot;. if...

Переопределить операции "+" "=" "-" для экземпляров моего класса
Добрый день. Мне нужно переопределить операции &quot;+&quot; &quot;=&quot; &quot;-&quot; для экземпляров моего класса. Я вижу это...

3
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
03.01.2011, 22:38 2
Цитата Сообщение от 242 Посмотреть сообщение
Никто случайно не имеет текста программы. "Задача о велосипедном замке" на С#.
А то думал эт несложная тема для курсача, а оказалось наоборот.
Мне кажется, это слишком примитивная задача для курсовой работы. Даже на задачу для контрольной не катит.
0
0 / 0 / 0
Регистрация: 30.12.2010
Сообщений: 3
05.01.2011, 10:46  [ТС] 3
В полне приличная для только начавших осваивать C#
0
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
05.01.2011, 16:09 4
Цитата Сообщение от 242 Посмотреть сообщение
В полне приличная для только начавших осваивать C#
Для только начавших - может быть. Но не для курсовой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2011, 16:09

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

Ошибка: "Не удалось привести тип объекта "System.ConsoleKeyInfo" к типу "System.IConvertible"."
При запуске пишет, что &quot;Не удалось привести тип объекта &quot;System.ConsoleKeyInfo&quot; к типу...

Десериализация json. Ожидается элемент "root" из пространства имен "". Обнаружен элемент "None"
Здравствуйте. Получаю от сервера ответ на запросы. В интернете нашел пример десериализации, и с...

Ребята, подскажите плз. - "WCF" + "plugin" (поддержка плагинов) + "3 Tier Architecture" (трехслойная архитектура)
Ребята, подскажите плз. можно ссылки на рабочий пример: C#: &quot;WCF&quot; + &quot;plugin&quot;(поддержка плагинов)...

Как исправить ошибку ""Ссылки на тип "Component" требует его определения в "System", но его не удалось найти"?
using System; using System.Collections.Generic; using System.Data.OleDb; using System.Linq;...


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

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

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