powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Интересная задачка.
35 сообщений из 35, показаны все 2 страниц
Интересная задачка.
    #34750168
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть множество чисел.
Необходимо эти числа распределить по группам. Группа представляет из себя елементы с общей сумой максимально приближенной но не более какого-то заранее определённого значения.

Всё это надо сделать на SQL.
Например: таблица с полями ID,VALUE,Group_ID...дальше я думаю понятно.

P.S. Вот уже неделю страдаю :) Первые алгоритмы работали до 40 минут на 400 записей :)
Сейчас уже 5 мин, но это очень много...
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750186
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при чем тут "Проектирование БД"? Ведь БД-то у тебя есть, я правильно понял?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750194
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAESЕсть множество чисел.
Необходимо эти числа распределить по группам. Группа представляет из себя елементы с общей сумой максимально приближенной но не более какого-то заранее определённого значения.

Всё это надо сделать на SQL.
Например: таблица с полями ID,VALUE,Group_ID...дальше я думаю понятно.

P.S. Вот уже неделю страдаю :) Первые алгоритмы работали до 40 минут на 400 записей :)
Сейчас уже 5 мин, но это очень много...

1 числа какого ряда/типа? только Integer?
2 по твоему ТЗ значит что все меньшие числа входят в группы больших чисел

т.е. "Матрешка" - каждый диапазан включает числа диапазонов с меньшими числами - этакие вложенные множества
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750219
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendment MAESЕсть множество чисел.
Необходимо эти числа распределить по группам. Группа представляет из себя елементы с общей сумой максимально приближенной но не более какого-то заранее определённого значения.

Всё это надо сделать на SQL.
Например: таблица с полями ID,VALUE,Group_ID...дальше я думаю понятно.

P.S. Вот уже неделю страдаю :) Первые алгоритмы работали до 40 минут на 400 записей :)
Сейчас уже 5 мин, но это очень много...

1 числа какого ряда/типа? только Integer?
2 по твоему ТЗ значит что все меньшие числа входят в группы больших чисел

т.е. "Матрешка" - каждый диапазан включает числа диапазонов с меньшими числами - этакие вложенные множества
Да числа integer.
Да получается матрёшка.
Вот ищу возможность разобрать по матрёшкам как можно оптимальней.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750277
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAESВот ищу возможность разобрать по матрёшкам как можно оптимальней.

зависит от диапазона значений массива и частоты дискретизации массива в диапазоны
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750298
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendment MAESВот ищу возможность разобрать по матрёшкам как можно оптимальней.

зависит от диапазона значений массива и частоты дискретизации массива в диапазоны
диапазон значений - от 1 до 300.
группы - суммы до 300.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750386
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAESдальше я думаю понятно.

а дальше вот как раз нихрена и не понятно... как должны быть представлены данные и какой в них смысл...

например если частота дискретизации диапазонов = 1 то 1 входит в 299 диапазонов, 2 в 298, 3 в 297 (Max(Array)-n)

всего получается примерно 45000 диапазонов

чего интересного в такой задаче?
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750406
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы делали для задачи подбора в тесте нужных вопросах (с общей сложностью максимально приближенной, но не больеш заданной). Но формирование тестов делали на Java. Работает быстро - о минутах речи не идет - секунды, конечно.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750420
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм. А не секрет ли, какой смысл в характеристике "суммарная сложность вопросов"? Это что-то типа "средней температуры по больнице"....
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750421
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чего интересного в такой задаче?
чего интересного - пошевелить мозгом. решить её скажем так в чистом SQL, без циклов и переборов. и то что задача реальна,
(например, принтер печатает по 300 листов. документы по 2 листа, по 10, по 50...
документов много-много. вот и нужно оптимально укладывать документы в стопочки чтоб стопочки эти были стремящиеся к 300листам.)
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750433
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Mainframe_старый опиши алгоритм.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750438
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAES
чего интересного в такой задаче?
чего интересного - пошевелить мозгом. решить её скажем так в чистом SQL, без циклов и переборов. и то что задача реальна,
(например, принтер печатает по 300 листов. документы по 2 листа, по 10, по 50...
документов много-много. вот и нужно оптимально укладывать документы в стопочки чтоб стопочки эти были стремящиеся к 300листам.)

ууу...
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750453
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описание алгоритма приведено в журнале Открытое образование. №2, за 2006 год.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750470
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerХм. А не секрет ли, какой смысл в характеристике "суммарная сложность вопросов"? Это что-то типа "средней температуры по больнице"....

Тест состоит из вопросов. Вопросы разной сложности - от 1 и до ... Но тест должен быть к примеру 100 баллов сложности для всех студентов. Надо набрать вопросы с разной сложностью, но чтобы была некая спарведливость - чтобы или 100 или максимально близко к 100 (99, если 100 невозможно, 98, если невозможно 99 и 100 и т.д.).
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750515
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть 100 вопросов типа "сколько будет 2*2"?
эквивалентны одному вопросу "Напишите формулу Энштейна"?
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750537
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beluginто есть 100 вопросов типа "сколько будет 2*2"?
эквивалентны одному вопросу "Напишите формулу Энштейна"?
Вопрос не ко мне - к методистам и преподавателям. Я - разработчик, поэтому отвечаю за реализацию того, что есть в тестологии. В рамках ограниченного времени - да, эквиваленты, если таково виденье преподавателя.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750547
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beluginто есть 100 вопросов типа "сколько будет 2*2"?
эквивалентны одному вопросу "Напишите формулу Энштейна"?

Кстати, согласно алгоритму такой неспарведливости не будет. Метод золотого сечения никто не отменял.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750824
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старыйНо тест должен быть к примеру 100 баллов сложности для всех студентов.
Это бессмысленный подход. Если студент ответил на 10 вопросов по 10 баллов каждый - это совсем не то же самое, как если он ответил на 2 вопроса по 30 баллов и 8 по 5 баллов.

Насколько я понимаю, реально существуют две методики. В более простом случае вопросы заранее разбиваются на группы, и говорится "зададим четыре простых вопроса, четыре средних и два сложных". При этом средняя сложность вопросов каждой серии подбирается под эталонное значение и применяется только для достаточно узких групп. Другой подход можно назвать адаптивным - система подбирает новые вопросы, ориентируясь на ранее данные ответы.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750841
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAES2 Mainframe_старый опиши алгоритм.
Если не ошибаюсь, для этой задачи оптимально сработает жадный алгоритм - то есть отсортировать значения по уменьшению, а дальше идти следующим образом:

- если очередное значение можно положить в первую кучку, то положить
- если очередное значение можно положить во вторую кучку, то положить
- ...
- если очередное значение некуда класть, то начать им новую кучку
- перейти к следующему

Оптимально - это значит, разложит таким образом, что сумма (N - вес кучки) для всех кучек будет минимальна. Впрочем, строго доказывать (или опровергать) эту гипотезу, если честно, лениво.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750852
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЭто бессмысленный подход.

в действительности подходов куда как больше чем два

например в приведенном варианте может иметь значение сумма критериев - количество ответов, набранный бал и время прохождения теста (количество ответов/баллов за норму времени)

все зависит от назначения теста - например в ряде случаев интервьюер ответивший на 5 вопросов по 10 баллов выигрывает с отрывом в разы у ответившего на один вопрос за 50 баллов.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750872
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERTнапример в приведенном варианте может иметь значение сумма критериев - количество ответов, набранный бал и время прохождения теста (количество ответов/баллов за норму времени)
Вы говорите о другом - уже об интерпретации ответов. Мы же обсуждаем составление списка вопросов - я показываю, что алгоритм "десять вопросов с суммарной сложностью сто баллов" не обеспечит получение качественного вопросника.

BULK INSERTвсе зависит от назначения теста - например в ряде случаев интервьюер ответивший на 5 вопросов по 10 баллов выигрывает с отрывом в разы у ответившего на один вопрос за 50 баллов.
Нисколько не возражаю. Я сказал - и думаю, Вы с этим согласитесь - что это "совсем не то же самое".

Если Вы можете назвать существенно другие методики именно составления вопросников, разумеется отличные от "от балды" - буду признателен.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750942
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerразумеется отличные от "от балды" - буду признателен.

самый простой пример устного тестирования...

автобус 39 машрута отправляется от конечной остановки

на остановке в автобус вошли 12 пассажиров из них 5 женщин
на следующей вышли 4 женщины и двое мужчин вошли 2 женщина 1 мужчина
на следующей вышли 2 женщина 1 мужчина <...>
на следующей

<...>

вопрос:

сколько было остановок

это к тому, что цели тестирования могут быть различными и методики оценок самыми неожиданными - тест должен им соответсвовать и не имеет значения насколько логичным (для вас) он выглядит если это не ответы на экзамене по СопроМату

вы можете не видеть смысла теста - но это не значет что он составлен и преследует цели "от балды"
...
Рейтинг: 0 / 0
Интересная задачка.
    #34750962
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERTсамый простой пример устного тестирования...
Хм. Вы привели пример вопроса . Вполне нормального и ничем не выдающегося вопроса. Вы таки действительно уверены, что это ответ на вопрос про методику выбора вопросов из предопределенного списка ?

P.S. Либо я чего-то не понимаю, либо Вы уже второй раз отвечаете как раз "от балды". Особенно ярко это видно в том поучении, который Вы опубликовали в конце письма.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751062
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerОсобенно ярко это видно в том поучении, который Вы опубликовали в конце письма.

я не собирался и собираюсь делать поучений.

вы предложили некую свою логику давая определение "бессмысленность" для такого подхода к выбору вопросов, в действительности вы просто отринули любую другую логику. а вариантов тут масса.

в этом случае тест может быть просто на максимальное количество ответов за отведенное время.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751075
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Mainframe_старыйНо тест должен быть к примеру 100 баллов сложности для всех студентов.
Это бессмысленный подход. Если студент ответил на 10 вопросов по 10 баллов каждый - это совсем не то же самое, как если он ответил на 2 вопроса по 30 баллов и 8 по 5 баллов.

Насколько я понимаю, реально существуют две методики. В более простом случае вопросы заранее разбиваются на группы, и говорится "зададим четыре простых вопроса, четыре средних и два сложных". При этом средняя сложность вопросов каждой серии подбирается под эталонное значение и применяется только для достаточно узких групп. Другой подход можно назвать адаптивным - система подбирает новые вопросы, ориентируясь на ранее данные ответы.

Подход не бессмысленный в рамках определенных условий. Кроме того, существуюет не две методики , а на порядок больше. В них кроме общей сложности теста задают и сложность некоторой группы вопросов в рамках теста и диапазлон сложности вопросов и в рамках теста и в рамках группы вопросов (называется это секции) и ограничение на число вопросов, и много чего еще, ну там не повторяемость в тестах на самопроверку , не использование ранее и многое чего еще, в том числе и учет того, как ранее отвечали на вопросы из этой секции - адаптивные. Все это описано в спецификации QTI. Алгоритм выбора, о котором тут речь идет работает в рамках этой общей спецификации, поэтому замечания о бессмысленности - не к нам, он решает узкую задачу обеспечения некой суммарной сложности из некоторого набора вопросов - а уж откуда и какие это вопросы - это решаеют на основании других правил (адаптивности, некоторого числа, неповторяемости, выбора из групп и т.п.).
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751096
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старыйон решает узкую задачу обеспечения некой суммарной сложности из некоторого набора вопросов - а уж откуда и какие это вопросы - это решаеют на основании других правил
OK. В такой постановке - спасибо, понятно и недоумения не вызывает.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751100
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer MAES2 Mainframe_старый опиши алгоритм.
Если не ошибаюсь, для этой задачи оптимально сработает жадный алгоритм - то есть отсортировать значения по уменьшению, а дальше идти следующим образом:

- если очередное значение можно положить в первую кучку, то положить
- если очередное значение можно положить во вторую кучку, то положить
- ...
- если очередное значение некуда класть, то начать им новую кучку
- перейти к следующему

Оптимально - это значит, разложит таким образом, что сумма (N - вес кучки) для всех кучек будет минимальна. Впрочем, строго доказывать (или опровергать) эту гипотезу, если честно, лениво.

Что-то типа того, похоже. Я уже не помню более точно сама. Писали лет 5 назад, освежать мне тоже лениво, так как задача решена и больше неинтересна.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751465
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот в принцыпе о чём я говорил:
Таблтчка JO_Test(id,val,group_id)
Вот алгоритм.
while exists ( select val from JO_Test where ISNULL(group_id,0)=0 )
loop
set @id = 0;
SELECT FIRST tst.id,(select max(val) from JO_TEST where id = tst.id) as max_v into @id,@value FROM JO_TEST as tst where ISNULL(group_id,0)=0 and val < @ostatok
order by val desc;
if @id<>0 then
update JO_TEST set group_id = @group_id where id = @id;
set @ostatok = @ostatok - @value;
else
set @group_id = @group_id + 1;
set @ostatok = @max;
end if
end loop;
Есть замечания по оптимизации?
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751572
HHD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HHD
Гость
MAESЕсть множество чисел.
Необходимо эти числа распределить по группам. Группа представляет из себя елементы с общей сумой максимально приближенной но не более какого-то заранее определённого значения.

Всё это надо сделать на SQL.
Например: таблица с полями ID,VALUE,Group_ID...дальше я думаю понятно.

P.S. Вот уже неделю страдаю :) Первые алгоритмы работали до 40 минут на 400 записей :)
Сейчас уже 5 мин, но это очень много...

Мне кажется что это напоминает известную задачу упаковки в контейнеры. Или я ошибаюсь?
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751582
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAESЕсть замечания по оптимизации?
Ээ.... а с каких пор то, что Вы написали, относится к "чистому SQL", как Вы хотели? Точнее даже

MAESпошевелить мозгом. решить её скажем так в чистом SQL, без циклов и переборов.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751636
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если бы я был уверен что имею все знания необходимые для решения этой задачи средствами SQL сервера я бы и не писал сюда. может быть я выбрал не ту тему.
Да, задача про контейнеры, просто я до этого не слышал о ней.

То что я написал (код выше) - это моё субъективное решение.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751667
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT MyRates.MyRate, MyArray.MyValues
FROM MyArray, MyRates
WHERE (((MyArray.MyValues)<[MyRates].[MyRate]))
ORDER BY MyRates.MyRate;


MyArray - Массив значений
MyRates - Границы диапазонов

запрос возвращает все диапазоны и все значения которые в них входят при заданном условии (значение < границы)

может быть я не правильно понял вопрос, хотя перечел четыре раза) но ИМХО неделю думать тут не над чем
...
Рейтинг: 0 / 0
Интересная задачка.
    #34751749
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://ru.wikipedia.org/wiki/Задача_об_упаковке_в_контейнеры
Речь идёт об оптимальности.

Проще сказать что есть например числовое множество из n элементов.
Есть правило для комбинации элементов по их сумме.
И цель в том чтобы сгруппировать все элементы множества так чтобы колличество групп было наименьшим.
...
Рейтинг: 0 / 0
Интересная задачка.
    #34752032
kittn2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересный топик.
Я думаю, что на будущее MAES себе учтет, что постановка задачи пользователем не имет ничего общего с тем, что нужно сделать на самом деле
...
Рейтинг: 0 / 0
Интересная задачка.
    #35189979
MAES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kittn2Интересный топик.
Я думаю, что на будущее MAES себе учтет, что постановка задачи пользователем не имет ничего общего с тем, что нужно сделать на самом деле
Я и так абстрагировал как мог :)

В данный момент система уже внедрена :)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Интересная задачка.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]