Russian Qt Forum
Апрель 28, 2024, 15:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Выбрать кадры  (Прочитано 8512 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #15 : Январь 22, 2021, 08:37 »

Код
C++ (Qt)
     int len = stop - start + count;
     int result = (len * val) / count;
     return min(result * count, stop);
 
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #16 : Январь 22, 2021, 12:53 »

Код
C++ (Qt)
     int len = stop - start + count;
     int result = (len * val) / count;
     return min(result * count, stop);
 

по идее можно сократить / count и * count, будет равнозначно. Но у меня математика не бьется, получаем результат отличный от того что нужно.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #17 : Январь 22, 2021, 19:35 »

а так?
Так уже было, кадр 12 не возвращается никогда (почти)

всегда вернётся, если val = 1:
if (val >= 1) return mStop;

А вот то, насколько часто бывает val = 1, это уже проблема вызывающей стороны.
« Последнее редактирование: Январь 22, 2021, 19:38 от Racheengel » Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Январь 23, 2021, 11:48 »

всегда вернётся, если val = 1:
if (val >= 1) return mStop;

А вот то, насколько часто бывает val = 1, это уже проблема вызывающей стороны.
Нет. Пусть mStart = 0, mStop = 3, mNum = 4. Для равновероятного val от 0 ло 1 должны равновероятно выпадать кадры от 0 до 3 включительно, все равно что rand()  % mNum. То что выбирааются лишь некоторые (а не все) кадры в заданном диапазоне - не должно менять задачу, последний кадр должен быть столь же вероятен как любой другой.

Но в любом случае приятно видеть опыт постановки и практической работы с юзером Улыбающийся
« Последнее редактирование: Январь 23, 2021, 11:56 от Igors » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Январь 23, 2021, 11:55 »

Код
C++ (Qt)
     int len = stop - start + count;
     int result = (len * val) / count;
     return min(result * count, stop);
 
Первая строка складывает разницу кадров со счетчиком - это не может быть правдой. На всякий случай проверим с val = 0, возвращается 0 , должно mStart
« Последнее редактирование: Январь 23, 2021, 12:02 от Igors » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.104 секунд. Запросов: 23.