Аватар для Vaderkos
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447

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

11.06.2015, 15:31. Показов 2798. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru