Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  
Автор Сообщение
vetvet
  Re: Статистика в Эксель
СообщениеДобавлено: 23.11.16 04:48 

Зарегистрирован: 16.03.11 12:27
Сообщения: 98
ALEXIN писал(а):
В Excel всё будет гораздо проще. Прошу показать решение в Эксель.
В Excel всё будет на С++, и что с того?
Вернуться к началу
 
 
ALEXIN
  Re: Статистика в Эксель
СообщениеДобавлено: 23.11.16 12:22 

Зарегистрирован: 11.06.12 07:57
Сообщения: 1696
vetvet писал(а):
ALEXIN писал(а):
В Excel всё будет гораздо проще. Прошу показать решение в Эксель.
В Excel всё будет на С++, и что с того?

vetvet!
Ерунду пишете, там и близко нет никакого С++. Всё будет на примитиве, не выше уровня ученика 6-го класса. Позже покажу, обомлеете.

Вот такая она "метапредметная математика будущего". Выучи предназначение нескольких кнопок... и всё. Не зачем голову забивать математическими наворотами, все библиотеки есть у компьютера. Ему по-барабану что считать!

Исправляю ошибку кода выше по Питону:
fs = lambda x: 10*x[0] + 15*x[1] + 20*x[2] + 25*x[3] + 25*x[4]
Надо:
fs = lambda x: 10*x[0] + 15*x[1] + 20*x[2] + 25*x[3] + 30*x[4]
Будет ответ: [(180, (0, 0, 0, 6, 1))]
Вернуться к началу
 
 
vetvet
  Re: Статистика в Эксель
СообщениеДобавлено: 23.11.16 15:44 

Зарегистрирован: 16.03.11 12:27
Сообщения: 98
ALEXIN писал(а):
vetvet писал(а):
ALEXIN писал(а):
В Excel всё будет гораздо проще. Прошу показать решение в Эксель.
В Excel всё будет на С++, и что с того?

vetvet!
Ерунду пишете, там и близко нет никакого С++. Всё будет на примитиве, не выше уровня ученика 6-го класса. Позже покажу, обомлеете.
Это вы даже не знаете, чем пользуетесь. Примитив - ваш уровень.
Excel написан на С++. Пользоваться им - то же самое, что взять программу, написанную другим человеком, и подставить свои данные. Точно так же можно найти под свои нужды программу и на Python, подставить другие цифры и получить результат без лишних усилий. Нет в Excel понятия проще или не проще. Просто в данном случае программу уже кто-то написал за вас, причём, работает она не всегда корректно.
Вернуться к началу
 
 
ALEXIN
  Re: Статистика в Эксель
СообщениеДобавлено: 25.11.16 20:58 

Зарегистрирован: 11.06.12 07:57
Сообщения: 1696
Ниже файл и картинка, где там: С++? Правильно: фписте!

Любой ученик уровня 5-6 классов может сотворить подобное, не имея представления о С++

Изображение

"Поиск решения" смотрите на вкладке (разделе) — "Данные".

Вложение:
Сборка MyDom5_5.xlsx [11 КБ]
Скачиваний: 61
Вернуться к началу
 
 
ALEXIN
  Re: Статистика в Эксель
СообщениеДобавлено: 25.11.16 21:18 

Зарегистрирован: 11.06.12 07:57
Сообщения: 1696
Исправил ошибку в коде Python
Было:
Код:
+ n4*bld30[0])
+ n4*bld30[0])
+ n4*bld30[0])
+ n4*bld30[0])
+ n4*bld30[0])

Надо:
Код:
+ n4*bld30[0])
+ n4*bld30[1])
+ n4*bld30[2])
+ n4*bld30[3])
+ n4*bld30[4])


Изображение

Исправленный код
Код:
#-*-coding:cp1251-*-

from itertools import groupby

total_parts = [962, 1343, 607, 771, 595]
bld10 = [60, 90, 30, 50, 21]
bld15 = [95, 131, 20, 60, 28]
bld20 = [110, 172, 60, 45, 41]
bld25 = [134, 195, 70, 75, 58]
bld30 = [157, 212, 84, 92, 76]

div = lambda a, b: a // b
fs = lambda x: 10*x[0] + 15*x[1] + 20*x[2] + 25*x[3] + 30*x[4]
d1 = lambda n0, n1, n2, n3, n4: total_parts[0] - (n0*bld10[0] + n1*bld15[0] + n2*bld20[0] + n3*bld25[0] + n4*bld30[0])
d2 = lambda n0, n1, n2, n3, n4: total_parts[1] - (n0*bld10[1] + n1*bld15[1] + n2*bld20[1] + n3*bld25[1] + n4*bld30[1])
d3 = lambda n0, n1, n2, n3, n4: total_parts[2] - (n0*bld10[2] + n1*bld15[2] + n2*bld20[2] + n3*bld25[2] + n4*bld30[2])
d4 = lambda n0, n1, n2, n3, n4: total_parts[3] - (n0*bld10[3] + n1*bld15[3] + n2*bld20[3] + n3*bld25[3] + n4*bld30[3])
d5 = lambda n0, n1, n2, n3, n4: total_parts[4] - (n0*bld10[4] + n1*bld15[4] + n2*bld20[4] + n3*bld25[4] + n4*bld30[4])

m10 = min(map(div, total_parts, bld10))
m15 = min(map(div, total_parts, bld15))
m20 = min(map(div, total_parts, bld20))
m25 = min(map(div, total_parts, bld25))
m30 = min(map(div, total_parts, bld30))

lst = [(n10, n15, n20, n25, n30) for n10 in range(m10 + 1)
                            for n15 in range(m15 + 1)
                            for n20 in range(m20 + 1)
                            for n25 in range(m25 + 1)
                            for n30 in range(m30 + 1)
                            if d1(n10, n15, n20, n25, n30) >= 0 and
                               d2(n10, n15, n20, n25, n30) >= 0 and
                               d3(n10, n15, n20, n25, n30) >= 0 and
                               d4(n10, n15, n20, n25, n30) >= 0 and
                               d5(n10, n15, n20, n25, n30) >= 0]
flst = zip(map(fs, lst), lst)
fmax = max(map(fs, lst))

res = [it for it in flst if it[0] == fmax]

print(res)


if len(res) > 1:
    rests = lambda x: d1(*x[1]) + d2(*x[1]) + d3(*x[1]) + d4(*x[1]) + d5(*x[1])
    # оптимальное решение
    key, grp = next(groupby(sorted(res, key=rests, reverse=True), key=rests))
    for it in grp:
        fs, rs = it
        print('{}, {} material_rests {}, ({}, {}, {}, {}, {})'.format(
                    fs, rs, key, d1(*rs), d2(*rs), d3(*rs), d4(*rs), d5(*rs)))


#     # все решения
        print('-'*60)
        for x in sorted(res, key=rests, reverse=True):
         print('{}, {} material_rests {}, ({}, {}, {}, {}, {})'.format(
                     x[0], x[1], rests(x), d1(*x[1]), d2(*x[1]), d3(*x[1]), d4(*x[1]), d5(*x[1])))


Правильный ответ, учитывающий экономию по остаткам по всем вариантам:
Код:
*** Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 32 bit (Intel)] on win32. ***
>>>
[(180, (0, 0, 0, 0, 6)), (180, (1, 0, 0, 2, 4)), (180, (1, 0, 1, 0, 5))]
180, (0, 0, 0, 0, 6) material_rests 552, (20, 71, 103, 219, 139)
------------------------------------------------------------
180, (0, 0, 0, 0, 6) material_rests 552, (20, 71, 103, 219, 139)
180, (1, 0, 1, 0, 5) material_rests 494, (7, 21, 97, 216, 153)
180, (1, 0, 0, 2, 4) material_rests 479, (6, 15, 101, 203, 154)
>>>


Вложения файлов с расширением *.py, даже архивом — запрещены. Ничего не могу сделать.
Вернуться к началу
 
 
ALEXIN
  Re: Статистика в Эксель
СообщениеДобавлено: 25.11.16 21:47 

Зарегистрирован: 11.06.12 07:57
Сообщения: 1696
Ещё можно использовать для симплекс-метода простенький исполняемый файл от Явы. Он в архиве 7.z, легко откроете сами.

Для любопытных на картинке показываю его в разобранном виде. Самим разбирать его не надо.
Скачайте как есть, откройте архив и поместите в папку "jsimplex" (Мои документы).

Изображение

Изображение

Создаем директорию, например у меня: C:\Users\admin\Documents\jsimplex
Запускаем Командную Строку — cmd.exe

Нам нужно будет отдать последовательно следующие команды:
Код:
cd C:\Users\admin\Documents\jsimplex
java -jar jsimplex.jar
10x +15y +20z +25k +30p --> max
60x +95y +110z +134k +157p <= 962
90x +131y +172z +195k +212p <= 1343
30x +20y +60z +70k +84p <= 607
50x +60y +45z +75k +92p <= 771
21x +28y +41z +58k +76p <= 595


Получится примерно так:
Код:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
C:\Users\admin>cd C:\Users\admin\Documents\jsimplex

C:\Users\admin\Documents\jsimplex>java -jar jsimlex.jar
Error: Unable to access jarfile jsimlex.jar
C:\Users\admin\Documents\jsimplex>java -jar jsimplex.jar
Error: Unable to access jarfile jsimplex.jar

C:\Users\admin\Documents\jsimplex>java -jar jsimplex.jar
Введите условие задачи. Для окончания ввода нажмите Enter в пустой строке.
Целевая функция: 10x +15y +20z +25k +30p --> max
Ограничение: 60x +95y +110z +134k +157p <=962
Ограничение: 90x +131y +172z +195k +212p <= 1343
Ограничение: 30x +20y +60z +70k +84p <= 607
Ограничение: 50x +60y +45z +75k +92p <= 771
Ограничение: 21x +28y +41z +58k +76p <= 595
Ограничение:

10x +15y +20z +25k +30p --> max
60x +95y +110z +134k +157p <= 962
90x +131y +172z +195k +212p <= 1343
30x +20y +60z +70k +84p <= 607
50x +60y +45z +75k +92p <= 771
21x +28y +41z +58k +76p <= 595

x = 0
y = 0
z = 0
k = 0
p = 6.1274
max F = 183.8217
C:\Users\admin\Documents\jsimplex>


Вложение:
simplex.rar [26.83 КБ]
Скачиваний: 61
Вернуться к началу
 
 
vetvet
  Re: Статистика в Эксель
СообщениеДобавлено: 26.11.16 00:07 

Зарегистрирован: 16.03.11 12:27
Сообщения: 98
ALEXIN писал(а):
Ясное дело у тупицы, засирающей тему — всё будет работать некорректно.
Я не писала про всё, а про некоторые случаи. У Excel проблемы с регрессионным анализом для некоторых выборок. А заисраете тему вы, Алёхин, ибо припёрлись в тему по статистике с тренировочными задачами для самых тупых.

ALEXIN писал(а):
[i]Ниже файл и картинка, где там: С++?
С++ вот тут:


Вложения:
1.png
1.png [ 100.29 КБ | Просмотров: 1363 ]
Вернуться к началу
 
 
vetvet
  Re: Статистика в Эксель
СообщениеДобавлено: 26.11.16 00:09 

Зарегистрирован: 16.03.11 12:27
Сообщения: 98
Вы в безграничной тупости своей между интерфейсом программы и языком программирования разницы не знаете?
Вернуться к началу
 
 
ALEXIN
  Re: Статистика в Эксель
СообщениеДобавлено: 26.11.16 00:45 

Зарегистрирован: 11.06.12 07:57
Сообщения: 1696
Microsoft Excel [...]
Вернуться к началу
 
 
vetvet
  Re: Статистика в Эксель
СообщениеДобавлено: 26.11.16 03:56 

Зарегистрирован: 16.03.11 12:27
Сообщения: 98
Маразм крепчал, еноты пели.
Написано на С++, макросы на VBA. Это ничуть не отменяет того, что вы научились пользоваться чужой готовой программой на уровне первокурсника, и плачете о том, что писать программу самому оченно тяжело.
Вернуться к началу
 
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:



Powered by phpBB © 2001, 2007 phpBB Group
© АУП-Консалтинг, 2002 - 2023