Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447

Можно сделать данный код еще меньше?

11.06.2015, 15:31. Показов 3012. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас 195 символов, но можно ли еще меньше?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
p = int(input())
m = []
for i in range(int(input())):
    m += input()
def f(m):
    w = len(m)
    t = []
    for i in range(2**w):
        s = "{"
        for j in range(w):
            if i & 1 << j:
                s += " " + m[j] + " "
        s += "}"
        t.append(s)
    return t
for y in range(p):
    m = f(m)
for k in m:
    print(k)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2015, 15:31
Ответы с готовыми решениями:

Как можно сделать данный кусок кода меньше и проще?
Задние: Заменить все элементы с четными номерами на значение второго положительного элемента массива. void change() //замена элементов...

Можно ли данный код сделать короче?
#include&lt;iostream&gt; #include&lt;iomanip&gt; int main() { int r,f,a,b,c,d,x,y; cout&lt;&lt;&quot;Vvedite znachenie r:&quot;; cin&gt;&gt;r; ...

Что нужно сделать, чтобы данную функцию можно было вызвать еще раз, не меняя ее код
Функцию add() из фрагмента кода вызвали 10 раз. Что нужно сделать, чтобы эту функцию можно было вызвать еще раз, при этом не меняя...

35
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
13.06.2015, 21:41
Студворк — интернет-сервис помощи студентам
cybercitizen, тоже долго не мог понять. Нужно посчитать f(M, p), где M - мн-во, p - натуральоне.
https://www.cyberforum.ru/cgi-bin/latex.cgi?f(M, p) = \left\{\begin{matrix}2^M, p = 1\\ 2^{f(M, p -1)}, p > 1\end{matrix}\right.

Добавлено через 6 минут
что-то никак с LATEX-ом не договорюсь. В предпросмотре одна формула, в сообщении другая

Добавлено через 1 минуту
Python
1
2
3
4
def f(M, p):
  if p == 1:
    return subsets(M)
  return subsets(f(M, p - 1))
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
13.06.2015, 21:47
Цитата Сообщение от rattrapper Посмотреть сообщение
Нужно посчитать f(M, p), где M - мн-во, p - натуральоне.
ты предлагаешь считать скаляр, а ему нужны множества. Впрочем, он сам не хочет объяснить нормально что ему надо. Надо только чтобы код короче был... perl в руки, там всё коротко и не понятно.

Добавлено через 49 секунд
И как это, 2Множество?
0
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
13.06.2015, 21:47  [ТС]
Я обьясняюсь основываясь на понятиях из дискретной математики
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
13.06.2015, 21:48
булеан?

Добавлено через 56 секунд
Цитата Сообщение от Vaderkos Посмотреть сообщение
Я обьясняюсь основываясь на понятиях из дискретной математики
ага, 1 2 3 4 5 6 7 A = {1,3,5} P(A).
0
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
13.06.2015, 21:48  [ТС]
Да, извиняюсь, так как учусь на польском то называю множеством. Немного не понял сначала что не понятно вам
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
13.06.2015, 22:13
Цитата Сообщение от cybercitizen Посмотреть сообщение
И как это, 2Множество?
cybercitizen, у нас так на дискретке обозначалось мн-во всех подмножеств, думал у всех так

Добавлено через 3 минуты
а обозначали так, помню, потому, что |2X| = 2|X|
0
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
13.06.2015, 22:26  [ТС]
cybercitizen, rattrapper, у нас так P(A)
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
13.06.2015, 22:32
Цитата Сообщение от cybercitizen Посмотреть сообщение
булеан
да. раньше не слышал такого названия
0
13.06.2015, 23:08

Не по теме:

Где-то у меня на erlang, sheme и haskell были такие решения. Не мог же я их удалить. О_о

0
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
13.06.2015, 23:13  [ТС]
cybercitizen, Я бы был очень благодарен если вы их найдете
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
14.06.2015, 15:28

Не по теме:

Я бы сам станцевал, если бы их нашел. Надо еще погуглить по ресурсам, где я их мог оставить.



Добавлено через 16 часов 6 минут
scheme
Lisp
1
2
3
4
5
6
7
8
9
(define (subsets set-lst)
  (if (null? set-lst)
      '(())
      ((lambda (r)
         (append r (map (lambda (a) (cons (car set-lst) a)) r)))
       (subsets (cdr set-lst)))))
 
(subsets '(a b c))
;'(() (c) (b) (b c) (a) (a c) (a b) (a b c))

haskell
Haskell
1
2
3
4
5
6
7
8
9
10
subSets [] = [[]]
subSets (x:xs) = r ++ map (x:) r where r = subSets xs
{-
Prelude> :load ./foo.hs
[1 of 1] Compiling Main             ( foo.hs, interpreted )
Ok, modules loaded: Main.
*Main> subSets [1,2,3]
[[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
*Main> 
-}

erlang обновляю рантайм. Интересно что эти функциональные алгоритмы один в один на python не переносятся. Алгоритм, который задействован в 1 посте конечно применим к наким языкам как c, pascal. Но никак не к python, где есть встроенные структуры данных и фвп для работы с ними.
2
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
14.06.2015, 16:04  [ТС]
cybercitizen, Спаибо огромное, а вы не могли бы мне обьяснить, что выполнят каждый код, так как я не знаком с этими языками, и не все понимаю.

Добавлено через 16 минут
Или посоветовать какие то уроки или материалы с помощью которых я пойму.
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
15.06.2015, 14:23
Ну а это для кого?
Haskell
1
2
3
*Main> subSets [1,2,3]
[[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
*Main>
Lisp
1
2
(subsets '(a b c))
;'(() (c) (b) (b c) (a) (a c) (a b) (a b c))
erlang
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-module(foo).
 
-export([sub_sets/1]).
 
-import(lists, [map/2, append/2]).
 
sub_sets([]) ->
    [[]];
sub_sets([X|Xs]) ->
    F = fun(R) -> 
        lists:append(R, lists:map(fun(A) -> [X|A] end, R))
    end,
    F(sub_sets(Xs)).
%1> c(foo).
%{ok,foo}
%2> foo:sub_sets([1,2,3]).
%[[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
%3>
1
 Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
15.06.2015, 14:46  [ТС]
cybercitizen, Я имею ввиду как сделать считывание клавиатуры и что бы можно было использовать функцию подобную к
Python
1
2
for y in range(p):
    m = f(m)
Я попробовал так, но не понимаю как делаются циклы и массивы в scheme
Lisp
1
2
3
4
5
6
7
8
9
10
#lang racket
(define (subsets set-lst)
  (if (null? set-lst)
      '(())
      ((lambda (r)
         (append r (map (lambda (a) (cons (car set-lst) a)) r)))
       (subsets (cdr set-lst)))))
(define w (read)) 
 
(display (subsets (list w)))
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
15.06.2015, 18:25
Лучший ответ Сообщение было отмечено Vaderkos как решение

Решение

Не по теме:

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


text.txt
12 3 44 5 22

scheme fom file
Lisp
1
2
3
4
5
6
7
8
9
10
(define *file* "/home/andrew/text.txt")
 
(define (get-data)
  (let ((data (with-input-from-file *file*
                (lambda () (read-string 1000))
                #:mode 'text)))
    (map string->number (string-split data))))
 
(get-data)
;'(12 3 44 5 22)

scheme from stdin
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(define (get-data)
  (let ((data (read (current-input-port))))
    (if (eq? data 'stop)
        '()
        (cons data (get-data)))))
 
(get-data)
;12
;22
;33
;44
;55
;stop
;'(12 22 33 44 55)


Добавлено через 4 минуты
Цитата Сообщение от Vaderkos Посмотреть сообщение
Я попробовал так, но не понимаю как делаются циклы и массивы в scheme
Циклов нет, массивы называются vector. Но у меня всё на списках.
1
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
16.06.2015, 22:56
Цитата Сообщение от cybercitizen Посмотреть сообщение
Интересно что эти функциональные алгоритмы один в один на python не переносятся
Потому что императивщина. Надо вывернуть мышление на изнанку.
Python
1
2
3
4
5
6
7
8
9
10
11
12
def cons(item, lst):
    tmp = [item]
    tmp.extend(lst)
    return tmp
 
def subsets(lst):
    if (lst == []):
        return [[]]
    else:
        r = subsets(lst[1:])
        r += map(lambda x: cons(lst[0], x), r)
        return r
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2015, 22:56

Как еще короче записать данный код?
#include &lt;ios&gt; main() { system(&quot;for /f \&quot;tokens=1,2,3\&quot; %a in (input.txt) do set /a %a*%b*%c*2 &gt;output.txt&quot;); } подсказка...

Как сделать данный текст и еще с поворотамм ?
Падающий текст. Из текстового файла читаются символы, которые «сыплются» с правого верхнего угла экрана. Начальная скорость варьируется в...

Какими ещё способами можно ещё сделать?
Задание: Известно, что: 1 в третей степени будет=1 2 в третей степени будет=3+5 3 в третей степени будет=7+9+11 4 в третей...

Сжать код 140байт. нужно еще меньше.
Сжать как то можно? Сейчас занимает 140B нужно меньше

Как можно максимально оптимизировать данный код через логическое индексирование? Код полностью работает
header = data = , , , , , , , , , , , , ] import numpy as np def salary_info_purchased(data, gender=None, purchased=None): ...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru