Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   сопоставление произвольного числа, числу из заданного диапазона (http://www.flasher.ru/forum/showthread.php?t=146693)

Contemplator 15.11.2010 14:44

сопоставление произвольного числа, числу из заданного диапазона
 
Как сопоставить произвольное положительное число, числу из заданного неотрицательного диапазона?
Например у нас есть некий известный диапазон чисел от 1 до 8, как сопоставить любое произвольное число (может входить в диапазон, а может и находиться за его пределами) так, что б в результате получить соответствующее число из этого диапазона (например 9 в диапазоне от 1 до 8 соответствует 1; 10 => 2; 13 => 5 etc).
Где-то год назад что-то подобное уже делал на AS2 (к теме в общем: к языку особой привязки нет - адаптировать подобный алгоритм не сложно), но в своих исходниках найти что-то не могу, а изобретать велосипед вновь не хочется =)

КорДум 15.11.2010 14:46

Два массива, сопоставлять по одинаковому индексу?

mikhailk 15.11.2010 14:58

10 % 8 = 2

Contemplator 15.11.2010 14:59

Цитата:

Сообщение от КорДум (Сообщение 949846)
Два массива, сопоставлять по одинаковому индексу?

ну да, диапазон де факто - индексы некоторого массива... И при передаче в качестве параметра некоего метода некоторого произвольного положительного числа, хочется что б он возвращал элемент, из данного массива с индексом [преобразованный_параметр - 1] /*параметр может быть любым неотрицательным числом, в конкретном случае всегда > 0 (а не >=0), поэтому в итоге отнимаем единицу, ну да это уже пляски с массивом - они не интересны =)) */.
Вопрос какраз в том как произвести преобразования параметра =))

zuxul 15.11.2010 15:03

не пойдет?
Код:

повторять пока число меньше "левой границы" прибавляя длину диапазона
повторять пока число больше "правой границы" уменьшая на длину диапазона


-De- 15.11.2010 15:03

Может, один массив, arr[9] = 1, arr[10] = 2, arr[13] = 5 ? Но надо перебрать все числа из диапазонов при задании соответствия.
Может, вам надо только 2 числа - 9 и 1, а соответствующее число находить как 1 - 9 + число?

cleptoman 15.11.2010 15:04

а чем остаток от деления вам не подходит?..и вам нужно число на выходе или индекс этого числа в массиве. в общем не совсем понятно что вам нужно )

mikhailk 15.11.2010 15:06

Остаток от деления - это, наверное, слишком просто...

-De- 15.11.2010 15:10

Тогда уж 1 + ((число - 1) % 8), а то 8 не получить по той формуле.

zuxul 15.11.2010 15:11

Цитата:

Сообщение от mikhailk (Сообщение 949849)
10 % 8 = 2

Привильно будет:
остаток от деления на длину диапазона плюс левая граница диапазона


Часовой пояс GMT +4, время: 08:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.