• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Losowanie do max dwóch powtórzeń

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
216 wizyt
pytanie zadane 24 maja 2016 w JavaScript przez Adam Jakś Dyskutant (8,940 p.)

Hej,

Szukam pomysłu na losowanie z idealnie dwoma powtórzeniami, 32-krotnie, z zakresu 16 liczb. Czyli z tych szesnastu każda musi pojawić się nie mniej, nie więcej jak dwa razy.

for (i=1;i<=32;i++) {
  x=Math.floor((Math.random() * 16) + 1);
}

 

2 odpowiedzi

+2 głosów
odpowiedź 25 maja 2016 przez mgpl Obywatel (1,430 p.)
var numbers = [];

for(var i=1; i<=16; i++) {
	numbers.push(i, i);
}

console.log('przed losowaniem: ', numbers);

function random(arr) {
	var randomIndex, tmp;
	for (var i=0, f=arr.length; i<f; i++) {
		randomIndex = Math.floor(Math.random() * f);
		tmp = arr[f-1];
		arr[f-1]= arr[randomIndex];
		arr[randomIndex] = tmp;
		f--;
	}
	return arr;
}

console.log('po losowaniu: ', random(numbers));

 

+1 głos
odpowiedź 25 maja 2016 przez Mya Bywalec (2,790 p.)
Możesz to zrobić na kilka sposobów:

1. Zapisywać wylosowane liczby (w tabeli bądź liście) i po każdym losowaniu sprawdzać czy aktualnie wylosowana liczba występuje w tabeli już dwukrotnie - jeśli tak nie zapisujesz jej tylko losujesz ponownie.

2, Możesz zapisać wszystkie dostępne do wylosowania liczby w tablicy, losować komórkę z zakresu tablicy, a następnie usuwać wylosowaną liczbę z listy dostępnych.

3. Biorąc pod uwagę, że i tak chcesz wylosować wszystkie liczby (32 z 32), najlepiej będzie przygotować tablicę z 32 dostępnymi liczbami (16 liczb, każda zapisana dwukrotnie). Następnie przetasować liczby w tablicy i zwracać kolejno zaczynając od indeksu 0 do 31,

Podobne pytania

+1 głos
1 odpowiedź 695 wizyt
pytanie zadane 25 czerwca 2016 w C i C++ przez Jardee Początkujący (420 p.)
0 głosów
4 odpowiedzi 1,256 wizyt
pytanie zadane 20 grudnia 2015 w C i C++ przez Munvik Dyskutant (9,350 p.)
0 głosów
2 odpowiedzi 304 wizyt

93,439 zapytań

142,431 odpowiedzi

322,674 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...