Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25

Переписать код с питона на c++

04.01.2020, 11:33. Показов 2995. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
m=input()
d=[1]*(len(m)+1)
d[0]=1 
d[1]=1
for i in range(2, len(m)+1):
  d[i]=d[i-1]+d[i-2]*int(int(m[i-2])!=0 and 0 < int(m[i-2:i]) <= 33)
print (d[-1])
написал код на питоне, нужно переписать на c++, но я его совершенно не знаю, помогите, пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2020, 11:33
Ответы с готовыми решениями:

Переписать КОД из Питона в MQL4
Всем добрый день. Помогите пожалуйста переписать КОД вот этого RC - Фильтра 2-го порядка из Питоновского языка на язык MQL4: БИХ...

Переписать программу с питона на паскаль
Переписать программу с питона на паскаль.s = 0 n = 10 for i in range(0,n-1): s = s + A - A

Перевести код с питона на С++
Здравствуйте помогите перевести код, пытаюсь но что-то совсем не то выходит. threshold = 0.5 learning_rate = 0.1 weights = ...

31
25 / 20 / 5
Регистрация: 08.12.2018
Сообщений: 30
04.01.2020, 11:55
Andreer, что должен выполнять код??
0
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25
05.01.2020, 10:57  [ТС]
вам текст задачи, которую он решает? или что делает каждая строчка код?
0
25 / 20 / 5
Регистрация: 08.12.2018
Сообщений: 30
05.01.2020, 12:41
Andreer, что должен выполнять код
0
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25
05.01.2020, 14:00  [ТС]
в сообщении, состоящем из одних русских букв и пробелов, каждую букву заменили её порядковым номером в русском алфавите (А - 1, Б - 2, ...,)а пробел - нулем. в первой строке содержится последовательность цифр. Цифр не более 100.код выводит количество исходных сообщений, которые могут получиться
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
05.01.2020, 22:56
Цитата Сообщение от Andreer Посмотреть сообщение
Цифр не более 100.код выводит количество исходных сообщений, которые могут получиться
Это количество размещений (=n!).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
using namespace std;
 
double factorial(double i){return (i > 1 ? factorial(i-1) : 1);}
 
int main(){
    string str("");
    cout << "input string: ";
    cin >> str;
    cout << "maximum combinates: " << factorial(str.size()) << '\n';
    return 0;
}
0
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25
06.01.2020, 07:30  [ТС]
assemberist, вы очень сильно ошибаетесь, количество сообщений, которые могут получиться считает моя программа и там далеко не факториал, если вам нужно я могу расписать, что делает каждая строчка кода, только в ответ, я надеюсь получить эту программу на языке c++
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
06.01.2020, 13:00
Цитата Сообщение от Andreer Посмотреть сообщение
вы очень сильно ошибаетесь
Потому что я не телепат и не знаю что ты подразумеваешь под количеством сообщений.
Количество комбинаций слов без перестановок?
Количество способов разместить слова в предложении?
Количество способов получить рандомную строку из исходного набора букв? (это я и сделал)
Цитата Сообщение от Andreer Посмотреть сообщение
что делает каждая строчка
И что мне это даст, если я не знаю что должен делать алгоритм? В питоне динамическая типизация и иное поведение типов нежели в си. Если будешь код интерпретировать по инструкции, то очень скоро встретишься с такими веселыми ошибками, как переполнение типа, ошибки сегментации, сравнение первых символов строк вместо самих строк...
Поэтому лучше приведи полный текст задачи.
Цитата Сообщение от Andreer Посмотреть сообщение
в сообщении, состоящем из одних русских букв и пробелов, каждую букву заменили её порядковым номером в русском алфавите (А - 1, Б - 2, ...,)а пробел - нулем... код выводит количество исходных сообщений, которые могут получиться
А что мешает работать со строками или массивами символов, если у тебя комбинаторная задача? Время обработки такое же, но не нужно тратиться на перевод символа в число.
0
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25
07.01.2020, 09:32  [ТС]
В сообщении, состоящем из одних русских букв и пробелов, каждую букву заменили её порядковым номером в русском алфавите (А - 1, Б - 2, ..., Я - 33), а пробел - нулем. Требуется по заданной последовательности цифр найти количество исходных сообщений, из которых она могла получиться.

Входные данные
В первой строке содержится последовательность цифр. Цифр не более 100.

Выходные данные
Вывести одно число.

Примеры
входные данные
80946
выходные данные
1
входные данные
21705
выходные данные
3
полный текстassemberist,
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
07.01.2020, 10:45
Цитата Сообщение от Andreer Посмотреть сообщение
входные данные
21705
выходные данные
3
Цитата Сообщение от Andreer Посмотреть сообщение
80946
80946 это "з иге". Как из этого набора получается 1?
21705 это "баж д". Как из этого набора получается 3?

Я пока только вижу, что в первом сообщении 1 буква до пробела, а во втором - 3. Больше никакого смысла ни в буквах ни в числах я не нахожу.
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
07.01.2020, 11:22
Цитата Сообщение от alexu_007 Посмотреть сообщение
80946 это "з иге". Как из этого набора получается 1?
21705 это "баж д". Как из этого набора получается 3?
тут нужно посчитать количество коллизий
80946 это "з иге" поэтому 1
21705 это либо "баж д" либо "уё д" либо "бп д" поэтому 3

Добавлено через 6 минут
Цитата Сообщение от assemberist Посмотреть сообщение
количество исходных сообщений, которые могут получиться
Цитата Сообщение от Andreer Посмотреть сообщение
количество исходных сообщений, из которых она могла получиться.
Andreer, тут очень большая разница в формулировках не находишь?
0
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25
08.01.2020, 09:31  [ТС]
assemberist, за это извиняюсь, писал на ходу тогда, слегка ошибся. а все таки код перепишите?
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
08.01.2020, 09:51
На Qt:

// начнём со строки, результат которой нам известен
// ввод можно легко допилить и позже
// когда всё правильно заработает

C++ (Qt)
1
QString m = "21705";
// d скорее всего динамический массив
// размером в введённое значение
// на начальном этапе не будем заморачиваться динамикой
// создадим статический побольше

C++ (Qt)
1
int d[100];
// начинаем заполнять массив, как в питоне

C++ (Qt)
1
2
d[0] = 1;
d[1] = 1;
// дальше идёт цикл, я понял его так.
// поправьте, если кто в теме

C++ (Qt)
1
2
3
4
for(int i = 2; i < m.length(); i++)
{
 
}
... продолжение следует
0
1 / 1 / 0
Регистрация: 04.01.2020
Сообщений: 25
08.01.2020, 12:14  [ТС]
alexu_007, вроде правильно, толькодо длины +1 же идем, а где остальное?
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
08.01.2020, 20:36
Чё то маловато кода на питоне. Я его не знаю, но сдаётся мне, там только перевод из цифр в русские буквы.
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
08.01.2020, 23:34
Andreer, а что твой код выводит если ввести "11111"?
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
09.01.2020, 23:35
Для 111111 на бумажке пока перебрал варианты. Теперь есть понимание, как это сделать, осталось оформить в виде алгоритма. Нули - это цифры в исходном числе (код буквы) по одному берутся, две единицы рядом - из 2-х цифр на этих позициях складывается код буквы:

1. 000000 аааааа
2. 000011 аааай
3. 000110 ааайа
4. 001100 аайаа
5. 001111 аайй
6. 011000 айааа
7. 011011 айай
8. 011110 аййа
9. 110000 йаааа
10. 110011 йаай
11. 111100 ййаа
12. 111111 ййй

Получилось 12 вариантов перестановок, вроде ничего не пропустил.
Математической закономерности не вижу, придётся колдовать с if-then-else.
Ну Питон крутой язык, в одну строчку такой алгоритм уместить!
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
10.01.2020, 09:42
Цитата Сообщение от alexu_007 Посмотреть сообщение
придётся колдовать с if-then-else.
Через рекурсию удобнее

Добавлено через 27 минут
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
#include <iostream>
 
using namespace std;
 
size_t collision(char* src);
 
int main()
{
    cout << collision("12321") << '\n';
    return 0;
}
 
size_t collision(char* src){
    switch (*src)
    {
    case '\0':
        return 1;
    case '3':
        if(*(src+1) > '3') return collision(src+1);
    case '1':
    case '2':
        return (*(src+1) ? collision(src+1) + collision(src+2) : collision(src+1));
    default:
        return collision(src+1);
    }
}
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
10.01.2020, 13:32
Не очень люблю рекурсию. К тому же у топикастера обозначен предел в 100 цифр. Сразу скажу, это круто. Я на данном этапе написал программу, которая перебирает все варианты без учёта выпадающих букв (например при подаче на вход числа "111111".

Для числа из 6 цифр количество вариантов равно 13.

10 - 71
20 - 3494
30 - 160204
40 - 7324600

И на сорока работала 2,5 минуты, дальше я не тестил. Результат растёт оч. быстро, думаю что рекурсия столько не переварит. К тому же я не очень понимаю, как ваша программа работает. Что-бы реализовать именно такой перебор, мой код получился сложнее.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
10.01.2020, 15:16
assemberist, нельзя ли проверить работу моей программы? Вот результат для чисел 123456 и 1234567:
Миниатюры
Переписать код с питона на c++   Переписать код с питона на c++  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2020, 15:16
Помогаю со студенческими работами здесь

необходимо переделать код с питона на c++
вот сам код a = m1 = 0 m2 = 0 count = 0 for i in range(len(a)-1): if a &gt; a: count += 1

Как встроить код в ядро питона?
Здравствуйте, мне необходимо импортировать данные в ядро питона, и далее работать координатами атомов. Дальше надо пройтись по всем атомам...

Переписать код с switch на код с использованием массивов
&lt;?php $action = $_POST; switch($action){ case 'first' echo 'первый' break; case 'red' echo 'красный' break; case 'blue' echo...

Как переписать код Pascal на код VB
var Form1: TForm1; n:integer=0; s:real=0; k:integer=0; implementation {$R *.dfm} procedure...

Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается
Возникло пару вопросов: #include &lt;iostream&gt; using namespace std; int main () { for (int i = 0; i&lt;=10; i++) cout...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru