![]() |
![]() |
![]() |
|
Помогите придумать функцию | ☑ | ||
---|---|---|---|---|
0
DirecTwiX
17.05.13
✎
23:52
|
Есть таблица с двумя колонками
А Б А меняется от 0 до N (больше тысячи, но неизвестно на сколько больше) Б от 0 до 1 Нужно отсортировать таблицу так, чтобы вверху оказались строки, у которых А и Б большие, а внизу, у которых хотя бы один из параметром мал. Искать максимум по столбцу нельзя. 100 0.1 должна быть выше 100 0.99 Хотя бы какие-нибудь идеи. Спасибо |
|||
1
DirecTwiX
17.05.13
✎
23:53
|
100 0.1
должна быть выше 100 0.99 Также как и 100 0.1 выше 99 0.1 |
|||
2
HeroShima
17.05.13
✎
23:53
|
ты гонишь
|
|||
3
DirecTwiX
17.05.13
✎
23:55
|
(2) К логарифму очень тянет..
|
|||
4
HeroShima
17.05.13
✎
23:56
|
(3) ну, ну
|
|||
5
orefkov
17.05.13
✎
23:59
|
Для начала надо определиться с критериями большести и малости, потом тупо для каждой строки посчитать вес в соответствии с этими критериями и отсортировать.
|
|||
6
DirecTwiX
17.05.13
✎
23:59
|
(4) Просто умножение пока попробую, но верю, что есть что-то лучше
|
|||
7
DirecTwiX
18.05.13
✎
00:00
|
(5) В том то и дело, что для каждой таблицы эти критерии разные. Таблица - результат запроса
|
|||
8
HeroShima
18.05.13
✎
00:03
|
(7) это в самом деле что-то меняет?
|
|||
9
DirecTwiX
18.05.13
✎
00:05
|
(8) При условии "Искать максимум по столбцу нельзя." - да
|
|||
10
orefkov
18.05.13
✎
00:07
|
Почему 100 0.1 выше 100 0.99, 0.99 ведь больше 0.1 ?
И что должно быть выше 100 0.001 и 99 0.999 ? |
|||
11
DirecTwiX
18.05.13
✎
00:08
|
(10) Описался. 0.099
|
|||
12
exwill
18.05.13
✎
00:08
|
Да уж! Мехмат уже не торт )))
|
|||
13
DirecTwiX
18.05.13
✎
00:08
|
99 0.999 > 100
|
|||
14
DirecTwiX
18.05.13
✎
00:09
|
(12) Курсач между прочем) Сегодня утром защита)
|
|||
15
HeroShima
18.05.13
✎
00:11
|
(9) при сортировке это лишнее в любом случае
|
|||
16
orefkov
18.05.13
✎
00:12
|
Проще тогда все-таки перемножать, но еще с отдельными коэффициентами для каждого столбца. Коэффициенты будут задавать "важность" столбца в общем вкладе и подбираются эксперементально на тестовых данных, пока не получиться устраивающий вариант. Грубо говоря, это и будут критерии "большести" и "малости".
|
|||
17
orefkov
18.05.13
✎
00:15
|
(13)
А как ты определил? По какому правилу? Его и заложи в формулу. Как ты например расставишь 99/0.2 и 100/0.15 ? |
|||
18
exwill
18.05.13
✎
00:15
|
(13) Я так понимаю, что по условиям можно поставить как
100 0.001 99 0.999 так и: 99 0.999 100 0.001 |
|||
19
exwill
18.05.13
✎
00:16
|
(17) В этом то и цимес задачи.
Можно и так и так. |
|||
20
exwill
18.05.13
✎
00:19
|
Хорошая задача. На основную проблему программирования.
|
|||
21
DirecTwiX
18.05.13
✎
00:20
|
(16) С коэффициентами для каждого столбца?) А потом их перемножить?)
(17) Вот не знаю как расставить. Поэтому сюда и за идеями пришёл) (19) Нужно хоть как) |
|||
22
exwill
18.05.13
✎
00:21
|
Собственно, "пузырьковый" метод должен прокатить.
|
|||
23
DirecTwiX
18.05.13
✎
00:21
|
(22) Сортировка пузырьком? Что сортировать то им?
|
|||
24
exwill
18.05.13
✎
00:22
|
(23) Поднимаешь вверх, если хотя бы одно значение больше.
|
|||
25
exwill
18.05.13
✎
00:24
|
Тут только проблему остановки надо решить.
|
|||
26
DirecTwiX
18.05.13
✎
00:24
|
(24) В терминах (0) ты предлагаешь max(A, B). Далеко не то, что нужно.
|
|||
27
DirecTwiX
18.05.13
✎
00:24
|
И до сих пор не могу понять при чём тут "пузырьковый" метод...
|
|||
28
exwill
18.05.13
✎
00:27
|
(26) какой мах(А,В)? Господи!
Если А1>А2 или В1>B2 обычный "пузырек": Если А1>А2 |
|||
29
NS
18.05.13
✎
00:31
|
(16) Перемножить с коэффициентами - это как?
|
|||
30
DirecTwiX
18.05.13
✎
00:31
|
(28) Да, прав. Я что-то тупанул.
Но про пузырёк всё равно никак не пойму) В любом методе сортировки сравнение есть. За идею спасибо! Сейчас подумаю |
|||
31
exwill
18.05.13
✎
00:32
|
Придумай, как остановится, и задача решена.
Мне лень. |
|||
32
NS
18.05.13
✎
00:32
|
Сложить логарифмы с коэффициентами можно (равнозначно перемножить с возведением каждого в степень, в разную)
|
|||
33
exwill
18.05.13
✎
00:34
|
В обычном "пузырьке" остановка происходит, если не было перестановок.
Здесь же могут быть циклические перестановки. |
|||
34
DirecTwiX
18.05.13
✎
00:34
|
(31) Сортировать именно по функции надо. Это делает СУБД. На половине пути останавливать запрос и сортировать тысячи строк пузырьком не очень хочется)
|
|||
35
DirecTwiX
18.05.13
✎
00:37
|
(33) Разве? В моём представлении "пузырёк" это
Вроде ничего не напутал.. |
|||
36
HeroShima
18.05.13
✎
00:38
|
- * - = +
|
|||
37
exwill
18.05.13
✎
00:38
|
(34) Я думал - это теоретическая задача.
С практической точки зрения у тебя что-то не то с постановкой. Или, говоря по-простому, ...ней страдаешь. |
|||
38
exwill
18.05.13
✎
00:40
|
(35)
for (int i; i=1; i<n-1) for (int j; j=i+1; j<n) if (a[i]<a[j] or b[i]<b[j]) swap(); |
|||
39
HeroShima
18.05.13
✎
00:41
|
всем спать...
|
|||
40
DirecTwiX
18.05.13
✎
00:48
|
(38) Я (35) написал к (30) и (33)
(37) Возможно и правда страдаю) Сейчас буду думать, что мне нужно.. (38) + Результат такого деяние может быть очень странным и хаотичным.. |
|||
41
exwill
18.05.13
✎
00:52
|
(40) Каков критерий, таков результат.
Сам сказал: ниже располагается строка, у которой хотя бы один из параметров меньше. |
|||
42
Klesk
18.05.13
✎
01:25
|
(0)
SELECT .... SORT BY .... не? |
|||
43
DirecTwiX
18.05.13
✎
02:19
|
(42) ORDER BY то есть?
И по чему сортировать предлагаешь?) |
|||
44
DirecTwiX
18.05.13
✎
02:27
|
Пока прогуливался до аптеки, понял что приблизительно мне нужно. Нужно чтобы вес столбца возростал со значением.
Буду пробовать корень, логарифм (log(A)*B например) |
|||
45
Klesk
18.05.13
✎
03:18
|
(43) может я не вкурил, а так нельзя?
ТЗ=Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("А"); ТЗ.Колонки.Добавить("Б"); ГСЧ = Новый ГенераторСлучайныхЧисел(); Для сч=1 по 100 Цикл НС=ТЗ.Добавить(); НС.А=Окр(ГСЧ.СлучайноеЧисло(1,10000),0); НС.Б=ГСЧ.СлучайноеЧисло(1,100)/100; КонецЦикла; ТЗ.Сортировать("А Убыв,Б Убыв"); |
|||
46
DirecTwiX
18.05.13
✎
03:25
|
(45) Не то.
Спокойно может оказаться, что элементы с наибольшими Б будут внизу. А нужно чтобы были ближе к верху |
|||
47
Klesk
18.05.13
✎
03:29
|
(46) так колонки независимы?
выгрузи в 2 таблицы, отсортируй |
|||
48
DirecTwiX
18.05.13
✎
03:35
|
(47) Зависимы)
|
|||
49
Klesk
18.05.13
✎
03:38
|
(48) тогда надо пропорцию составить )
|
|||
50
Klesk
18.05.13
✎
03:45
|
(49) хотя без максимума нереально наверно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |