Skocz do zawartości

Scilab - Pomoc W Napisaniu Prog


mariot987

Rekomendowane odpowiedzi

Nie jest to zadanie do szkoly ani na zaden sprawdzian : ) . Chce obliczyc nastepujaca rzecz.

Mam liczbe 500. Jest zbior liczb od 0 do 50.

Chce zeby program dodajac kolejne elementy tego zbioru dal sume 500. liczby w dzialaniu nie moga sie powtarzac . Tych liczb w danej sumie ma byc okreslona ilosc - 15. na koncu chcialbym zobaczyc wszystkie te 15 liczb. Liczby maja byc wybierane losowo. Prosze o pomoc. Prawie jak w lotku ;)

Odnośnik do komentarza
Udostępnij na innych stronach

(...) dodajac kolejne elementy tego zbioru dal sume 500. liczby w dzialaniu nie moga sie powtarzac .
Jeśli to ma być 15 kolejnych liczb, to wiadomo, że nie będą się powtarzać ;)

Pytanie tylko czy poprawnie zdefiniowałeś zadanie, bo z jedej strony mówisz o zbiorze licz od 0 do 50, który wcale nie musi być uporządkowany z drugiej strony o kolejnych liczbach co sugerowałoby, że zbior jednak został posortowany (rosnąco lub malejąco).

Odnośnik do komentarza
Udostępnij na innych stronach

Troche niefortunnie uzylem tego slowa. Oczywiscie nie musza byc to kolejne elementy tego zbioru. Chodzi o to zeby w danym dzialaniu zadna z liczb sie nie powtorzyla.

 

Ok, ale na jaką pomoc liczysz i dlaczego scilab :) ?

Chcesz aby ktoś Ci rozpisał algorytm czy może napisał program do algorytmu który już masz?

 

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli ma wylosować 15 liczb, które po zsumowaniu dadzą 500 czy coś źle zrozumiałem???

Troche niefortunnie uzylem tego slowa.

Bez urazy ale tu się z Tobą zgodzę...

Sprecyzuj proszę, bo prostego Totka to się napisze w ciągu 5 min może 10, czym ten Twój Totek ma się wyróżniać???

Odnośnik do komentarza
Udostępnij na innych stronach

no to piszesz pętlę która wykonuje się od 0 do 15, w której następuje losowanie. Pierwszą wylosowaną dodajesz do pewnej początkowo określonej zmiennej równej 0, następnie tą sume dodajesz do kolejnej wylosowanej itd, na końcu porownujesz czy równa jest 500 :D jeśli nie to zaczynasz od początku, może przy dobrym szczęściu tak jak w lotka uda ci się trafić 500 i zakończyć działanie programu :D

p.s. a tak z ciekawości zapytam na jakim systemie masz scilaba?

Odnośnik do komentarza
Udostępnij na innych stronach

imo zrób tabliczkę z cyframi i po użyciu zastępuj specjalnym symbolem (np liczbą 51) następnie możesz pododawać dodatkowe bajery zmniejszające czas obliczeń, np odrzucać odpowiednio wcześnie ciągi liczb o zbyt małej sumie (np ciąg 1,2....,14 nie pozwala uzyskać liczby 500 przy 15 elementach) lub oszukiwać i przy "dochodzeniu" do wartości 500 losować liczby od zera do różnicy pomiędzy sumą aktualnego ciągu a liczbą 500 (tak, żeby nie wylądować powyżej 500). Metod jest z pewnością wiele i w większości na czystej wyobraźni bazują.

Odnośnik do komentarza
Udostępnij na innych stronach

Polecałbym raczej w ostatnim przebiegu pętli, odjąć zmienną od 500 i sprawdzić czy różnica już była wylosowana.

 

Zawsze można trochę pooszukiwać ;)

 

 

Tak, "randomizacja jest zbyt ważna aby ją pozostawić przypadkowi" :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, "randomizacja jest zbyt ważna aby ją pozostawić przypadkowi" :)

Pełne poparcie :)

Ja bym się zaczął bawić tak jak FC4B

Kolejne losowania liczb i przykładowa sytuacja

mamy wylosowane już 14 liczb i ich suma wynosi 492, brakuje więc 8

mamy chyba tylko jedno niezręczne wyjście w tej sytuacji

losować dotąd aż będzie 500 co trochę ustawia totka bowiem ostatnia liczba będzie "przewidziana"

gdzieś chciałem tego typu zabawę stosować (rób to to to dopóki nie spełni się warunek taki i taki) po parę razy i się udawało, było np. "powiększaj speed dopóki nie osiągnie 400" i do tego "kiedy osiągnie 400 i wciśnięty Pad.Up jedź z prędkością 400" choć nie ukrywam zabawy i sprawdzania warunków po parę razy "w praniu" jest...może dlatego, że czasami nie umiem kompilować w głowie :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...