Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

ustalanie zbioru na podstawie drugiego zbioru

Ostatnio zmodyfikowano 2018-02-16 15:32
Autor Wiadomość
jankowalski25
» 2018-02-16 14:27:28
@garlonicon: Wzór dla dwuelementowej mapy jest poprawny, dla trzyelementowej już nie.

Przykład:
C/C++
A = { 1, 2, 3, 4, 5, 6 };
Mapa = { 6 - 5, decode3( { 1, 2, 3, 4 } / { 6 - 5 } ) };
Mapa = { 1, decode3( { 2, 3, 4 } ) };
Mapa = { 1, 4 - 3, 3 };
Mapa = { 1, 1, 3 };
A = sort( { 1, 1, 3, 1 + 1, 1 + 3, 1 + 1 + 3 } );
A = sort( { 1, 1, 3, 2, 4, 5 } );
A = { 1, 1, 2, 3, 4, 5 };
{ 1, 1, 2, 3, 4, 5 } != { 1, 2, 3, 4, 5, 6 };

Jeśli już chcesz tak zrobić, to raczej będzie to coś w stylu:
C/C++
A = { a, b, c, d, e, f };
s = sum( { a, b, c, d } / { f - e } );
Mapa = { f - e, s - f, e + f - s };

I jeszcze sprawdzenie z przykładem wyżej:
C/C++
A = { 1, 2, 3, 4, 5, 6 };
s = sum( { 1, 2, 3, 4 } / { 6 - 5 } );
s = sum( { 1, 2, 3, 4 } / { 1 } );
s = sum( { 2, 3, 4 } );
s = 9;
Mapa = { 6 - 5, 9 - 6, 5 + 6 - 9 };
Mapa = { 1, 3, 2 };
A = sort( { 1, 3, 2, 1 + 3, 3 + 2, 1 + 3 + 2 } );
A = sort( { 1, 3, 2, 4, 5, 6 } );
A = { 1, 2, 3, 4, 5, 6 };
{ 1, 2, 3, 4, 5, 6 } == { 1, 2, 3, 4, 5, 6 };

Patrząc na wzory, które wychodzą dla czteroelementowej mapy widzę, że chyba nie tędy droga. Nie znam rozwiązania, ale wydaje mi się, że trzeba kombinować inaczej.
P-169448
darko202
» 2018-02-16 15:32:06
zacząłbym od ustalenia ilości elementów Mapa = (?)

dla przedstawionego w przykładzie Mapa = (3, 4, 2, 6, 3) zbioru to 5
suma 2 elementów to + 4
suma 3 elementów to + 3
suma 4 elementów to + 2
suma 5 elementów to + 1
razem 15

czyli odwrotnie  15-1 -> 14-2 -> 12-3 -> 9-4 -> 5
mając to wiemy ze największa liczba jest sumą 5 elementów

tu wiemy, że dwie najmniejsze muszą być w Mapie 2, 3       
sumujem pięć kolejnych liczb -> patrzymy czy suma przekracza 18 (max zbioru A) jeśli tak to ostatnia liczba nie moze już być w zbiorze Mapa
i odrzucamy ją i wszystkie wieksze ze zbioru A, bo nie mogą to być liczby ze zbioru Mapa

1.
brutalnie
szukamy które z 5 liczb daje nam sumę największej liczby w przykładzie 18

2.
subtelniejsza
korzystamy z informacji o sumowaniach i eliminujemy niemożliwe
P-169450
1 « 2 »
Poprzednia strona Strona 2 z 2