Skrypt losujący liczby bez powtórzeń w podanym zakresie

0

Witam! Próbuję dzisiaj od paru godzin napisać skrypt, który po podaniu zakresu wylosuje X liczb z tego zakresu, wpisze je do tablicy...ale tak aby nie powtarzały się one. Jestem początkujący jeśli chodzi o JavaScript i nie jestem w stanie wymyślić nic ponad to co napisałem już teraz. Każda próba kończyła się tym, że skrypt po prostu nie działał. Mógłby ktoś mi pomóc? Nie proszę o gotowe rozwiązanie (chyba, że ktoś będzie tak miły), ale o szczegółowe wskazówki jak zrobić to co mi jest potrzebne. Z góry dziękuję za pomoc!

Mam skrypt, który wypisuje losowe liczby z tego zakresu ale nie potrafię zrobić tego aby każda z nich była unikatowa.

<DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
```javascript
    {
        function zakres()
        {
            var MIN = document.getElementById('a1').value;
            var MAX = document.getElementById("b1").value;
            var n = document.getElementById("ilosc").value;
            var t = new Array(n);
            var control = 1;

            if(MIN>MAX)
            {
                document.write('Zły zakres');
            }

            else if(MIN<MAX)
            {   
                if(n>=10)
                {
                    for(i=0;i<=n;i++)
                    {
                        var randomowaLiczba = Math.floor( Math.random() * (MAX - MIN)+1);
                        t[i] = randomowaLiczba;
                    }

                    for(i=1;i<=n;i++)
                    {
                            document.write("Liczba "+i+": "+t[i]+'<br>');
                    }
                }
            }   
        }
    }
    </script>

    <style type="text/css">
    #input{
        width: 295px;
        height: 35px;
        background-color: #304FFE;
        border-radius: 20px;
        padding-top: 15px;
        padding-left: 5px;
    }
    input{
        border: none;
        border-radius: 20px;
        padding-left: auto;
        text-align: center;
    }

    #btn{
        color: #1A237E;
        background-color: #26A69A;
        width: 60px;
        height: 20px;
    }
    </style>

</head>
<body>
<input type="text" maxlength="5" size="6" id="a1" /> <input type="text" maxlength="5" size="6" id="b1" /> <input type="text" maxlength="5" size="6" id="ilosc" /> <input type="button" id="btn" value="OK" onclick="zakres()">
</body>

</html>

0

Wpisz liczby do tablicy np. jakąś pętlą a później zrób na niej shuffle http://lmgtfy.com/?q=javascript+shuffle+array

0

Zmień sobie zakres, ewentualnie ilość losowanych liczb.
http://jsfiddle.net/EyVm9/43/

0

Możesz to jeszcze zrobić np. tak:

<!DOCTYPE html>
<html>
<head>
<script>
var x = []

function myF(min, max) {
x = []
for (i = min; i <= max; i++)
    x.push(i);
shuffle(x)
document.getElementById("demo").innerHTML = x;
}

function shuffle(arr) {
    for(var j, x, i = arr.length; i; j = Math.floor(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
    return arr;
}
</script>
</head>
<body>
<button onclick="myF(4, 7)">Try it</button>
<p id="demo"></p>

</body>
</html>

Wywołujesz funkcję myF z parametrami zakresu jaki chcesz, w tym przypadku od 4 do 7.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0