Dodaj wpis w tym temacie
Spis tematów | Strona: 1 2 3 4 5 6 7 8 9 Wyślij wiadomość do admina |
Przewiń wpisy ↓ | SUDOKU |
2024-11-20 (21:05) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 142 [ CZCIONKA MONOSPACE ] W poprzednim wydruku zabrakło jednej linii: gwar=5 Sub adresy() stoper = Timer gwar = 5 liczb = 42 For l1 = 1 To 38 For l2 = l1 + 1 To 39 For l3 = l2 + 1 To 40 For l4 = l3 + 1 To 41 For l5 = l4 + 1 To 42 adres = kombinuj(liczb, gwar) If liczb - l1 > 4 Then adres = adres - kombinuj(liczb - l1, 5) If liczb - l2 > 3 Then adres = adres - kombinuj(liczb - l2, 4) If liczb - l3 > 2 Then adres = adres - kombinuj(liczb - l3, 3) If liczb - l4 > 1 Then adres = adres - kombinuj(liczb - l4, 2) adres = adres - (liczb - l5) 'Cells(1, 22) = adres Next Next Next Next Next czas = Format(Timer - stoper, "00.0000000") & " sek." Cells(1, 1) = czas End Sub |
2024-11-20 (21:06) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 143 [ CZCIONKA MONOSPACE ] Fair_play Na bieżni byłem godzinę. Nie chodzi mi o lepszą procedurę. Dzisiaj jej nie wypróbuję, bo jak uruchomiłem VisualBasica to mi w ogóle błędy robi w arkuszu. Nie mogę nawet ze strony lotto skopiować wyników do arkusza bo mi pokazuje cuda. Jak zrestartuję to wtedy dopiero powraca do normy, a jeszcze muszę zrobić wydruk do pliku obu wersji, żeby się upewnić, że wszystkie kombinacje są sprawdzane adres po adresie. Zszokował mnie czas, bo według czata SI odczyt z tablic polega na odczytaniu i przeskakiwaniu najpierw po wierszach a potem po kolumnach dlatego nie spodziewałem się takiej różnicy. Przerobię jeszcze i ten co podałeś dzisiaj i także sprawdzę, to podam czas. To co przerobiłem pokazywało adres od 1 itd. Dlatego szukam ewentualnego błędu w każdej z wersji. Nie chodzi o sekundę w tę czy w drugą stronę. P.S. Co mam z tym kodem zrobić? Wkleić do arkusza? Ja makra robiłem z 20 lat temu, to już nic z tego nie pamiętam. Ale wtedy to tylko się zapisywało swoje działania i tyle. --- wpis edytowano 2024-11-20 21:14 --- |
2024-11-20 (21:37) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 149 [ CZCIONKA MONOSPACE ] W Arkuszu wybierasz "Deweloper"->"Makra" Wpisz dowolną nazwę makra np "test" i kliknij "Utwórz" Następnie wklej poniżej tej procedury test moją procedurę, Ale jeszcze poniżej mojej procedury musisz wkleić funkcję "kombinuj". Skasuj nagłóek Option Explicit. Zamknij okno makr. Teraz w Arkuszu klikasz jeszcze raz "Devwloper"->"makra" zaznaczasz makro "adresy" i klikasz "Uruchom" W komórce A1 pojawi się czas operacji wyliczania 850 668 adresów. -------------------------------------------------------------------------------------------------- |
2024-11-20 (22:01) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 155 [ CZCIONKA MONOSPACE ] Ja nie mam w ogóle takich przycisków jak developer, makra visual basic. ...a jest tylko makra w widoku, ale developer nie ma. Jutro spróbuję. |
2024-11-20 (22:05) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 156 [ CZCIONKA MONOSPACE ] Karta Deweloper nie jest domyślnie wyświetlana, ale można ją dodać do wstążki. Na karcie Plik przejdź do pozycji Opcje > Dostosowywanie Wstążki. W obszarze Dostosowywanie Wstążki oraz Karty główne zaznacz pole wyboru Deweloper. |
2024-11-20 (22:08) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 159 [ CZCIONKA MONOSPACE ] Już mam. Dzięki. Jutro się pobawię. --- wpis edytowano 2024-11-20 22:09 --- |
2024-11-20 (22:46) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 171 [ CZCIONKA MONOSPACE ] Fair_play Ten kod działa dobrze, bo podał wszystkie kombinacje w takim samym porządku jak według mojej iteracji, czyli zaczął od 1,2,3,4,5 to indeks=1 i skończył na 38,39,40,41,42 z indeksem 850668, czyli wszystko ok. Mnie nie była potrzebna iteracja, którą dodałeś, bo ja chciałem porównać obie wersje z taką samą. ... a tę linię cyt. "adres_start = kombinuj(liczb, gwar)" wstawiłem na początku, by jej nie powtarzać przy każdej kombinacji 1,2,3,4,5 potem 1,2,3,4,6 itd. gwar = 5 : liczb = 42 adres = adres_start If liczb - A1 > 4 Then adres = adres - kombinuj(liczb - A1, 5) If liczb - B2 > 3 Then adres = adres - kombinuj(liczb - B2, 4) If liczb - C3 > 2 Then adres = adres - kombinuj(liczb - C3, 3) If liczb - D4 > 1 Then adres = adres - kombinuj(liczb - D4, 2) adres = adres - (liczb - E5) Function kombinuj(n, k) licznik = 1 mianownik = 1 For I = 1 To k licznik = licznik * (n + 1 - I) mianownik = mianownik * I Next kombinuj = licznik / mianownik End Function |
2024-11-20 (22:52) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 173 [ CZCIONKA MONOSPACE ] Fair_play Zmienna "adres_start" to wartość 850668 i nie jest zmieniana. Było dobrze, bo mnie chodziło o sam kod do indeksu: --- wpis edytowano 2024-11-20 22:56 --- |
2024-11-20 (23:07) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 175 [ CZCIONKA MONOSPACE ] Na prawdę nie wiem co chcesz porównywać, przecież zwiększasz tylko E5, a co z A1,B2,C3,D4? Bo liczysz tylko 38 adresów. I co Ci zajęło 3,7 sekundy? --- wpis edytowano 2024-11-20 23:10 --- |
2024-11-20 (23:13) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 176 [ CZCIONKA MONOSPACE ] W VisualBasic dla czytelności kodu mogę ukryć cały ciąg np. pętle For/Next czy Do/Loop (tylko widać nagłówek) i to schowałem dlatego nie widać tych A1, B2, C3, D4. Obliczenie wszystkich indeksów (czyli 850668). Czy moją metodą jest szybciej, czy tą podaną przez Ciebie. --- wpis edytowano 2024-11-20 23:17 --- |
2024-11-20 (23:16) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 177 [ CZCIONKA MONOSPACE ] Z ich prezentacją w arkuszu czy bez? |
2024-11-20 (23:20) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 178 [ CZCIONKA MONOSPACE ] Bez prezentacji, miał tylko obliczyć nr indeksu i następnego i następnego. Z zapisem do pliku txt to w ogóle mnie czas nie interesował. To zrobiłem tylko po to by się przekonać, czy wszystko było. Jest ok. --- wpis edytowano 2024-11-20 23:22 --- |
2024-11-20 (23:21) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 179 [ CZCIONKA MONOSPACE ] kurcze, jak trudno się z Tobą dogadać |
2024-11-20 (23:24) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 180 [ CZCIONKA MONOSPACE ] Ja już myślę czy się da jeszcze to poprawić i może przez to, że myślami jestem dalej. Dalsze Wasze kombinowanie jak coś znaleźć, czy porównać to już inna bajka. Mnie chodziło o szybkość dotarcia do danych z tablicy 850668 możliwości. Szukanie i porównywanie to pieśń przyszłości. Tego nawet nie zacząłem. Coś tam dla 28 liczb zrobiłem na gwałt i to taką prowizorkę. Najbardziej mnie zdziwiło, bo na logikę czy będzie coś szukane pętlami czy dochodzenie wierszem a później kolumną wydawało się tożsame, a jednak. --- wpis edytowano 2024-11-20 23:32 --- |
2024-11-20 (23:33) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 181 [ CZCIONKA MONOSPACE ] Moja procedura oblicza wszystkie adresy w 2,1 sekundy. Twojej nie znam więc nie mogę jej u siebie porównać. Ty masz obie więc porównaj. A tak na marginesie to jeśli nie miałeś Developera i Makro to jak ta Twoja procedura działa? |
2024-11-20 (23:38) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 182 [ CZCIONKA MONOSPACE ] Ja piszę w programie VisualBasic, NIE tym dla aplikacji czyli NIE tym - VBA. To program do pisania swoich aplikacji, nie związanych z Excelem, czy Wordem. VisualBasic to coś jak pisanie programów w np. języku C++. --- wpis edytowano 2024-11-20 23:41 --- |
2024-11-20 (23:40) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 183 [ CZCIONKA MONOSPACE ] No teraz to mnie rozbawileś VisualBasic w skrócie VBA to Excelowski język pisania makr. "To program do pisania swoich aplikacji, nie związanych z Excelem..." A te swoje tabele gdzie masz, nie w Excelu? --- wpis edytowano 2024-11-20 23:42 --- |
2024-11-20 (23:42) Jacek_K1961 Data rejestracji: 2017-03-29 Ilość postów: 6390 | wpis nr 1 540 184 [ CZCIONKA MONOSPACE ] No właśnie piszę, że NIE VBA, tylko samo VB. To program do pisania samodzielnych aplikacji, tyle, że w innym języku niż np. C. Tabele tworzy sam komputer w tym języku. W excelu też mam jak je tworzyłem - ich schemat. Jak się dowiedziałem to potem przeniesienie w kod to już drugi etap. Wynik działania programu mojego porównuję zawsze z arkuszem. Widok tabel do niczego mi nie jest potrzebny. To komputer je potrzebuje. Ja tylko mu podaję że np. do 42 liczb. --- wpis edytowano 2024-11-20 23:50 --- |
2024-11-20 (23:45) fair_play Data rejestracji: 2016-05-12 Ilość postów: 7920 | wpis nr 1 540 185 [ CZCIONKA MONOSPACE ] OK, pasuję na dziś. |
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lotto | Strona: 1 2 3 4 5 6 7 8 9 Wyślij wiadomość do admina |