Массив |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Массив |
BanneD |
20.01.2011 13:14
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Всем доброго времени суток!
Помогите с программным кодам
Мне надо чтобы сгенерированные числа не повторялись! Как это сделать?? -------------------- Один из законов жизни гласит, что как только закрывается одна дверь, открывается другая.
Но вся беда в том, что мы смотрим на запертую дверь! |
TarasBer |
20.01.2011 14:49
Сообщение
#2
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Перемешивание массива делается так:
(может, в ЧАВО добавить, вопрос частый) Добавлено через 1 мин. А тебе надо сначала заполнить массив числами от 1 до MAX просто последовательно, а потом перемешать массив. -------------------- |
BanneD |
20.01.2011 16:11
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Добавлено через 1 мин. А тебе надо сначала заполнить массив числами от 1 до MAX просто последовательно, а потом перемешать массив. Спасибо большое=) Ну это типа так...
М.б. кому пригодиться -------------------- Один из законов жизни гласит, что как только закрывается одна дверь, открывается другая.
Но вся беда в том, что мы смотрим на запертую дверь! |
TarasBer |
20.01.2011 16:39
Сообщение
#4
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
m:=random(n-i-1)+i+1;
Неверно. надо m:=random(n-i+1)+i; Должна быть возможность поменять элемент с самим собой (ну оставить на месте). Сам подумай, чтобы при i=1, например, формула превратилась в random(MAX)+1. А вообще я что-то понять не могу, то у тебя до 90 (в виде константы), то до 85, ты определись. -------------------- |
BanneD |
20.01.2011 16:54
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
m:=random(n-i-1)+i+1; Неверно. надо m:=random(n-i+1)+i; Должна быть возможность поменять элемент с самим собой (ну оставить на месте). Сам подумай, чтобы при i=1, например, формула превратилась в random(MAX)+1. Что то я тебя не понимать=\ задача решается, все верно! Ты так хотел?
Цитата А вообще я что-то понять не могу, то у тебя до 90 (в виде константы), то до 85, ты определись. Это типа игра=) Ну дали задание в лотореии (в лотке) 90 шаров, из них остаются 5 или 3 шара в лотке а остальные выпадают. Короче это Лото(ты наверно знаешь что это такое=)). Сообщение отредактировано: BanneD - 20.01.2011 17:01 -------------------- Один из законов жизни гласит, что как только закрывается одна дверь, открывается другая.
Но вся беда в том, что мы смотрим на запертую дверь! |
TarasBer |
20.01.2011 17:13
Сообщение
#6
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Что то я тебя не понимать=\ задача решается, все верно!
У тебя при i равном n-1 вызывается random(0), тебя не напрягает? Что такое random(0)? Функция, возвращающая число от 0 до -1? Жалко, что в язык не вставлена проверка аргумента для этого случая. Короче, неправильно ты алгоритм мой переписал. Если трудно, напиши лучше так (всё по процедурам):
-------------------- |
BanneD |
20.01.2011 17:20
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
> Что то я тебя не понимать=\ задача решается, все верно! У тебя при i равном n-1 вызывается random(0), тебя не напрягает? Что такое random(0)? Функция, возвращающая число от 0 до -1? Жалко, что в язык не вставлена проверка аргумента для этого случая. Короче, неправильно ты алгоритм мой переписал. Если трудно, напиши лучше так (всё по процедурам): я то условие поставил что не выводим ноль! и он все 85 эл-ов массива мне выводит=)
Не ленись проверь мой ПК=) А то что ты с процедурами написал я там нифига не понял так как мы до процедур еще не дошли Ладно не парься. Спасибо за все Сообщение отредактировано: BanneD - 20.01.2011 17:22 -------------------- Один из законов жизни гласит, что как только закрывается одна дверь, открывается другая.
Но вся беда в том, что мы смотрим на запертую дверь! |
TarasBer |
20.01.2011 17:23
Сообщение
#8
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> я то условие поставил что не выводим ноль!
Это называется костыль. Правильный алгоритм должен работать без костылей. > А то что ты с процедурами написал я там нифига не понял Не проходили ещё? -------------------- |
BanneD |
20.01.2011 17:24
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
> я то условие поставил что не выводим ноль! Это называется костыль. Правильный алгоритм должен работать без костылей. > А то что ты с процедурами написал я там нифига не понял Не проходили ещё? ага, еще не проходили=) -------------------- Один из законов жизни гласит, что как только закрывается одна дверь, открывается другая.
Но вся беда в том, что мы смотрим на запертую дверь! |
Текстовая версия | 25.05.2024 18:00 |