Случайни числа без повторение - блог начинаещите програмисти

Дори миналата година, когато се срещнахме със стандартния оператор ранд. отговорен за генерирането на случайни числа. Операторът е много полезна, тъй като ние не трябва да се управлява лично данни от клавиатурата или да се свържете с файлове масиви от данни. Въпреки това, случайността като операторът има един малък недостатък. тъй като цифрите са взети на случаен принцип и ограничения са само в диапазона. те може да се повтори. Разбира се, някой е изпълнено. но за някои това е проблем, който трябва да реши за себе си. Съвсем наскоро, аз бях помолен да напише колкото е възможно повече проста програма, в която случайни числа изведохме, така че няма номер се повтаря. В действителност, за да го прости. Както е известно, на случаен принцип изявление показва случайни числа и може да се повтори. Това е особено очевидно, когато се посочва тесни граници. например, ако индикаторните елементи на масива 10, се запълват с случайни числа в границите от 0 до 9. между тях е почти винаги повтаря. По-долу е кодът на изпълнение.
Каква е нашата алгоритъм, за да се отстрани повтарящите се числа. За да направите цифрите не се появят отново, това е достатъчно, за да се направи нещо като филтър, който от всички случайни числа ще бъдат взети само от тези, които все още не са били. Пример масив да обясни. Гледайте последователност.
Етап 1.Zapolnyaem първи елемент
Етап 2.Zapolnyaem втория елемент
Подетап 1. го проверява с първата.
а) Ако елементите са различни, след това преминете към следващата стъпка.
б) Ако те са идентични, след което попълнете втория елемент отново до тогава. докато те са неравномерно.
Стъпка 3. Попълнете третият елемент.
Подетап 1. го проверява с първата.
а) Ако елементите са различни, след това преминете към следващата стъпката.
б) Ако те са идентични, а след това напълнете Третият елемент отново до тогава. докато те са неравномерно.
2. подетап го проверява с втория.
а) Ако елементите са различни, след това преминете към следващата стъпка.
б) Ако те са идентични, а след това напълнете Третият елемент отново до тогава. докато те са неравномерно.
Етап 4.

Снимани при етап 3 е равна сравнение случи първо и третия елемент и първия и след третата и vtorogo.I по този начин алгоритъма се повтаря от първия до десетия schaga. Всеки път, когато мога стъпки, ние правим I-1 подетапи.
И сега целият алгоритъм. Отидох изявление е бил използван за алгоритъма. За него споменах в една статия от контур .Itak алгоритъм код
Пълният код с мощност, генерирана от елементите на масив на екрана.
В един и същи код, но без използването на етикети.
Благодаря ви за ifnu
Помощ pozhaluysta.Vot задача дава три различни числа, намерете средната стойност на тях. Среден е номер, който е по-голям от най-ниските числа данни. но по-малко от максимума.
Паскал абв
че е невъзможно да се направи случаен принцип от -10 до +10
Помощ за задача на Олимпийските игри.
В стаята донесе таблици и компютри. Те са поставени както следва:
1 2 3 4 и така нататък.
1 2 3 4 5 6
(В долната част на компютрите в горната част на таблиците)
което трябва да се реши проблема с помощта на цикъла и DIV, мод. pliz помощ.
Благодаря ви предварително.
изявление: = случаен (макс, минути);
Var х: цяло число;
започвам
случаен характер;
х: = случаен (2,5);
приключи;
Ти пишеш, че максималният брой на писалка място, а вторият минимум. Но във вашия пример за обратното. Както разбирам, това няма значение?
По принцип, това е печатна грешка, поправена
изявление: = случаен (макс, минути);
Var х: цяло число;
започвам
случаен характер;
х: = случаен (2,5);
приключи;
Ти пишеш, че максималният брой на писалка място, а вторият минимум. Но във вашия пример за обратното. Както разбирам, това няма значение?
Благодарим Ви за описание на метода на балона. Бих искал да се проучи по-подробно метода на Хоаре. Какво метод на избор?
Създаване на масив от 20 случайни числа в интервала от -30 до 0 странни елементи на квадрат и да покаже масив за търсене. а как да се реши?
Help. нужда от такава програма, скорост = 1000 Throw 3 куб. ако числото е по-голямо от 12 спечелени и процент увеличение на три от тях. и ако загубим залогът намалява dvoe.Esli номера на заровете са едно и също след zaschitat победа, това е всичко. Моля, помогнете.