Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 mar 2026, o 18:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 27 lis 2013, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Witam kolegów.
Potrzebuje wyloswać liczby całkowite aby je sobie upchać do tablicy. Mój kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wszystko działa ale niestety funkcja rand nie losuje mi liczb ujemnych. Jak to zrobić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 21:05 
Offline
Użytkownik

Dołączył(a): 06 lut 2013
Posty: 38
Pomógł: 0

Ja bym losowal liczbę a następnie drugi raz wylosował jej znak +/- ;) Wyjdzie na to samo ale w dwóch losowaniach.

Preferuje tez tablice unsigned - jak chce ze znakami to wstawiam druga tablice z odpowiadajacymi znakami. To zalezy do jakiego celu to losujesz no i taki podzial marnuje pamiec. Można ewentualnie dodatkowy bit dopiac do cyfry tak aby odpowiadal za znak. ;)
Zwyczajnie nie lubie liczyc na liczbach ujemnych. Mysle pozytywnie :p



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 21:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Ja niestety muszę na całkowitych (założenia zadania). Problem już rozwiązałem. Dodatkowo losuję liczbę i przez modulo sprawdzam parzystość. Jeśli parzysta to minusuję liczbę w tablicy:


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kod tak prosty, że bez komentarzy :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2013, o 21:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Żeby otrzymać ujemne możesz losować dodatnie i odjąć jakiś stały offset. Wtedy będą się pojawiać i dodatnie i ujemne (przy odpowiednim offsecie).

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2013, o 10:10 
Offline
Użytkownik

Dołączył(a): 06 lut 2013
Posty: 38
Pomógł: 0

Przy odejmowaniu ze stałym offsetem wynik losowania nie bedzie obiektywny ;) Idac tym tropem mozna losowac dwie liczby i je odejmowac - wynik bardziej wiarygodny ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2013, o 12:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Dlaczego nieobiektywny?
Dam przykład.
Normalnie losujesz powiedzmy uint16_t więc od 0 do 65535. I teraz jak od tego odejmiesz połowę, tzn. 32768, to masz zakres na plusie i minusie taki sam.

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 13:30 
Offline
Użytkownik

Dołączył(a): 06 lut 2013
Posty: 38
Pomógł: 0

Jesli ten offset bedzie rowna polowa to tak. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 13:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Możesz zrobić to tak: tab[i][j]=rand()-(RAND_MAX/2);

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 15:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Albo skorzystaj z tego kodu poniżej

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 15:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

WoodPaker napisał(a):
Albo skorzystaj z tego kodu poniżej


heh ;) fajna funkcja tak nawiasem mówiąc - tylko "troszkę" ciężka na "niektóre" AVR'ki przez to:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 20:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Oj tam. To tylko 4kb :D

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 20:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

WoodPaker napisał(a):
Oj tam. To tylko 4kb :D


Jakie 4kB ? ;) gdyby to była tablica liczb uint8_t to byłoby 4kB ... ale tu masz typ uint32_t więc jakby 4 razy więcej ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 20:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Mea culpa, mea culpa, mea maxima culpa.

Można zawsze przerobić generator. Gdzieś miałe taki, którego powtarzalnośc była co 100 losowań (czyli do bani)
Kiedyś na jakieś zaliczenie robiłem

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 23:18 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

A to nie bylo wczesniej w jezyk C dla PC? Pozatym printf na avr? ;)

A zeby nie bylo ze glupoty same ostatnio pisze to polecam (uwaga po angielsku) zacna bibloteke do generowania liczb losowych na AVR:
https://code.google.com/p/avr-hardware- ... AVRentropy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2014, o 23:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

charsz napisał(a):
A to nie bylo wczesniej w jezyk C dla PC? Pozatym printf na avr? ;)

No właśnie chyba było dlatego wrzuciłem program na PC.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO