Avatar-Lion |
05-02-2014 22:35 2303598 |
Где найти программиста?
В общем, нужна простенькая программа под Винду: окошечко, которое заполняется полоской с процентами (ну как при установке программы или игры). Но с одним условием: чтобы каждый процент был случайным, т.е. чтобы +1% или -1% было полностью рандомным и чтобы статус этой полосочки с процентами обновлялся, скажем, несколько раз в секунду. Ну и кнопка закрытия, естественно. Всё. Больше ничего не надо.
У самого просто ни одного знакомого программиста нет, а искать каких-нибудь фрилансеров не умею, да и не хочется заморачиваться так серьезно ради простой программки. В общем, никто не даст контакты человечка, который за бесплатно или N рублей напишет такую вещицу?
|
Цитата:
Цитата Avatar-Lion
Но с одним условием: чтобы каждый процент был случайным, т.е. чтобы +1% или -1% было полностью рандомным »
|
Жаль, что у Вас нет и ни одного знакомого математика — он бы Вам подсказал, что в данном случае индикатор останется «танцевать» около начального значения.
|
Avatar-Lion |
05-02-2014 22:55 2303622 |
Iska, Да, именно это и нужно.
|
Avatar-Lion, а смысл? Индикатор же должен «продвигаться» вперёд?
Ну, не знаю — индикатор такого типа:
Код:
$i, $j = 0, 0
while($j -le 100) {
Write-Progress -Activity "Search in Progress" -Status "$j% Complete" -PercentComplete $j;
$i++
$j = [math]::Truncate([math]::Log($i) * 10)
}
мне лично больше нравится :lol:.
|
Avatar-Lion |
05-02-2014 23:38 2303656 |
Iska, Скажем так: он МОЖЕТ продвинуться вперёд, но, как вы понимаете, для этого нужно чтобы очень много раз выпало +1, а не -1.
P.S. Куда этот текст вставить?
|
Цитата:
Цитата Avatar-Lion
Iska, Скажем так: он МОЖЕТ продвинуться вперёд, но, как вы понимаете, для этого нужно чтобы очень много раз выпало +1, а не -1. »
|
Даже при том, что случайные числа, генерируемые компьютером, на самом деле всего лишь псевдослучайны — количества выпадающих «+1» и «-1» будет стремиться к равенству. Это обычная теория вероятностей.
Цитата:
Цитата Avatar-Lion
P.S. Куда этот текст вставить? »
|
Это пример «выводящего из себя» индикатора на PowerShell.
|
Avatar-Lion |
06-02-2014 00:42 2303696 |
Iska, Послушайте, я вроде бы весьма ясно дал понять, что отлично понимаю суть своей просьбы. Да, мне нужно именно то, о чем вы говорите: примерно равный шанс выпадения тех или иных значений. Ваш скрипт попробовал: он не делает того, что я описывал. Он просто заполняет строку до 100% и останавливается. Есть еще идеи?
|
Avatar-Lion, я Вас прекрасно понял. Могу показать, как будет выглядеть Ваш заказ. Но давайте внесём хоть какое-то разнообразие — третью вероятность:
Код:
$oRandom = New-Object System.Random
$i = 0
while($true) {
$i = [math]::Min([math]::Max(0, $i + [math]::Truncate($oRandom.Next(-1, 2))), 99)
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
|
Avatar-Lion |
06-02-2014 01:27 2303734 |
Iska, Так, ага, это уже больше похоже на правду... Спасибо. А что за третья вероятность? Я просто в этих скриптах все равно ничего не понимаю, поэтому желательно пояснить что к чему.
|
Кроме «-1» и «+1» выпадает ещё и «0». Это делает движение индикатора несколько менее равновероятным (хотя на общий итог сие не влияет).
|
Avatar-Lion |
06-02-2014 01:47 2303745 |
Iska, ОК. А частота обновления индикатора от чего зависит тогда?
|
Цитата:
Цитата Avatar-Lion
А частота обновления индикатора от чего зависит тогда? »
|
В данном случае — только от «скорострельности» Вашей машины. Никаких временн ых задержек там нет.
|
Avatar-Lion |
06-02-2014 02:11 2303749 |
Iska, А как тогда добавить задержку? Ну скажем, чтобы ±1% осуществлялся раз в полсекунды, например?
И такой вопрос: добавление \ убавление каждого следующего процента - это некое заранее вычисленное действие и поведение индикатора, следовательно, тоже задано заранее на много-много процентов "вперёд" и я теперь просто смотрю нечто вроде фильма? Или же для каждого нового процента индивидуально осуществляется расчёт вероятности и, соответственно, добавление \ убавление каждого процента предсказать невозможно в принципе?
|
Цитата:
Цитата Avatar-Lion
Или же для каждого нового процента индивидуально осуществляется расчёт вероятности и, соответственно, добавление \ убавление каждого процента предсказать невозможно в принципе? »
|
Предсказать в принципе, можно. Просто для данной программы этого никто не будет делать. А так да, для каждого нового процента индивидуально осуществляется расчёт вероятности.
Цитата:
Цитата Avatar-Lion
А как тогда добавить задержку? Ну скажем, чтобы ±1% осуществлялся раз в полсекунды, например? »
|
Start-Sleep -m <Time in milliseconds> Using the Start-Sleep Cmdlet между фигурных скобок тела цикла.
----
Псевдослучайная двоичная последовательность
|
Avatar-Lion, Вам на чем программа-то нужна? И цель сего опуса какая?
|
Цитата:
Цитата Avatar-Lion
А как тогда добавить задержку? Ну скажем, чтобы ±1% осуществлялся раз в полсекунды, например? »
|
Как указал выше коллега lxa85:
Код:
$oRandom = New-Object System.Random
$i = 0
while($true) {
$i = [math]::Min([math]::Max(0, $i + [math]::Truncate($oRandom.Next(-1, 2))), 99)
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
Start-Sleep -Milliseconds 500
}
Цитата:
Цитата Avatar-Lion
И такой вопрос: добавление \ убавление каждого следующего процента - это некое заранее вычисленное действие »
|
Два раза «нет». Во-первых, не добавление/убавление, а добавление/убавление/отсутствие изменений. Во-вторых, не заранее вычисленное, а псевдослучайное.
|
Время: 09:02.
© OSzone.net 2001-