Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epic Problem #871

Open
Wandalen opened this issue Feb 18, 2017 · 3 comments
Open

Epic Problem #871

Wandalen opened this issue Feb 18, 2017 · 3 comments

Comments

@Wandalen
Copy link

Wandalen commented Feb 18, 2017

Народ в мене є чудова алгоритмічна задача для вашого курса :)
@ZhuChara2004 якщо знайдеш доречним, я не проти як включиш мою задачу в свій курс.
Подробиці задачі в наступному повідомленні.

@Wandalen
Copy link
Author

Реалізувати логіку класа "Варіатор"

Обєкт класа варіатор приймає в якості опцій
allowed - перелік дозволених варіантів
preffered - перелік бажаних варіантів
known - перелік відомих варіантів
onAttempt - колбек що повертає тру, якщо варіант є доступним

Задача класа знайти список варіантів, які задовольняють умови запиту, що визначається опціями allowed та preffered.

Для тестування варіатора будемо застосовувати масив доступних варіантів available. Масив доступних варіантів є фіктивним, в реальній задачі його вміст не відомий й єдина операція, що дозвона із ним це перевірка на наявність в масиві елемента визначеного значення.

Приклад запиту.
available : 240,360,720
allowed : 360,720
preffered : 1080
will give 360

Приклад запиту.
available : 240,720
allowed : 360,720
preffered : 1080
will give 720

Приклад запиту.
available : 240
allowed : 360,720
preffered : 1080
will give error

Приклад запиту.
available : 240,360,720
allowed : 240,360,720,1080
preffered : 240,360
will give 240,360

Приклад запиту.
available : 240,720
allowed : 240,360,720,1080
preffered : 240,360
will give 240,720

Приклад запиту.
available : 240,720
allowed : 240,360,1080
preffered : 240,360
will give 240

Приклад запиту.
available : 720
allowed : 240,360,1080
preffered : 240,360
will give error

Також масиви allowed та preffered можуть мати один або більше елементів any.
На елементі any в preffered алгоритм має спробувати всі дозволені варіанти поки не знайде перший доступний.
На елементі any в allowed алгоритм має спробувати всі відомі варіанти поки не знайде перший доступний.
Для реалізації any в allowed існує опція класа known.
Known - масив відомих значень, перелік можливих варіантів, які теоретично можуть існувати і бути доступними. Масив відомих значень є константним, задається раз і впродовж виконання програми не змінюється. Масив відомих значень може не мати в собі якісь із можливих варіантів. На відміну від фіктивного масиву доступних варіантів, доступ до якого обмежений, масив відомих є цілком доступним.

Алгоритм не викидає помилки, якщо знайдено хоча б один доступний варіант.
Результат виконання алгоритму не має повторів.
Послідовність результату виконання алгоритму має значення.

@Wandalen
Copy link
Author

Поділіться рішенням, якщо комусь цікаво :)

@Wandalen
Copy link
Author

Wandalen commented Mar 1, 2017

@OlhaBezpalchuk, @vladislavsheludko, @OlhaBezpalchuk не бажаєте прийняти участь?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant