Что нового

Поиск оптимального числового значение

Trans

Знающий
Сообщения
257
Репутация
6
Суть такова, необходимо найти из списка число, которое будет не много больше или таким же...
т.е. у нас есть список:
Код:
124
144
547
77
551
584
36
994
1
784
нужно найти из этого списка число, которое оптимальнее всего подойдёт к числу 549, при этом это число не должно быть меньше числа 549..
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
А причем здесь раздел Регулярные выражения ? ;)


Добавлено:
Сообщение автоматически объединено:

Код:
#include <Array.au3>

Dim $avArray[10]=[124, 144, 547, 77, 551, 584, 36, 994, 1, 784]

For $i=UBound($avArray)-1 To 0 Step -1
	If $avArray[$i] < 549 Then _ArrayDelete($avArray,$i)
Next
	
ConsoleWrite( "Optimal Data =" & _ArrayMin($avArray , 1))
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
gregaz [?]
А причем здесь раздел Регулярные выражения ?
При том, что нужно найти данные комбинации на странице браузера
Ищем значение при помощи
Код:
StringRegExp($HealHTML, '(?i)href=\"(lechit.php\?ID=\d+).*?Емкость.*?>\d{1,}',3); цифровое значение тут \d{1,}

Вот и нужно найти самое оптимальное число при помощи регулярного выражения
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Так с помощью регулярных выражений ведь создается только исходный массив. :smile:

А к самой задаче оптимизации способ получения исходного массива не имеет никакого отношения
Оптимальное число невозможно найти с помощью регулярных выражений.
Они не позволяют сравнивать значения.
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
gregaz
Ясно, спасибо, ваш пример помог решить задачу не много по другому
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Единственное, что можно при получении исходного массива это отбросить все числа < 549 если есть уверенность в присутствии чисел 55*

Код:
$avArray=StringRegExp($HealHTML, '(?i)href=\"(lechit.php\?ID=\d+).*?Емкость.*?>(549|55\d)',3) ;выбирает числа 549 и 550-559
ConsoleWrite( "Optimal Data = " & _ArrayMin($avArray , 1))



Добавлено:
Сообщение автоматически объединено:

Или так :
Код:
$avArray=StringRegExp($HealHTML, '(?i)href=\"(lechit.php\?ID=\d+).*?Емкость.*?>(549|5[56789]\d)',3); 549 и 550-999
ConsoleWrite( "Optimal Data = " & _ArrayMin($avArray , 1))
 
Верх