![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
sergio11 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.12.2010 Репутация: нет Всего: нет |
не могу понять почему не правильно рабатает цикл.
вот есть код который перемешивает содержимое списка.
после я у меня создаются 2 списка А и А1 по 3 элемента. причем изначально они полностью одинаковы. мне нужно перемешивать содержимое А до тех пор пока элементы в А и в А1 будут на разных позициях. Тоесть было 123, а должно получиться 312 или 231, ну в общем смысл понятен. Для всего этого я написал условие и поместил в цикл, но он не всегда срабатываел или вобще не работает.
Если кто сможет понять почему не работает, то помогите, напишите, а то уже 2 месяц курсяк не могу закончить. попробовал вот это
результат тотже не всегда срабатывает. а если несколько раз на кнопку понажимаю, то практически перестаёт работать. |
||||||
|
|||||||
kuzyara |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
ну во первых и во вторых гугл
в-третьих уверен ли ты что "T tmp = list[i]" и "(A1[0] == A[0])" работают как ты ожидаешь? Это сообщение отредактировал(а) kuzyara - 13.3.2011, 18:17 --------------------
подпись |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
А если получится 132 ? Не думал о том, что при рандомном перемешивании некоторые элементы могут остаться на своих местах? Тем более, что общее количество элементов в твоем примере невелико. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
sergio11 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.12.2010 Репутация: нет Всего: нет |
||||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
То есть ты в цикле вызываешь рандомную перестановку для того, чтобы ни один элемент не оказался на своем месте? Я просто не догнал сразу. Но по-моему ты избрал не лучший способ. Опять таки для большого количества элементов это будет дорогое удовольствие, а для малого, можно определить несколько перестановок и выбирать одну из них. В частности, если ты возьмешь последний элемент и поместишь его в начало, то однозначно достигнешь желаемого. ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
sergio11 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.12.2010 Репутация: нет Всего: нет |
||||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
sergio11, я думаю тут именно не "поменять", а "переместить", т.е. последний поставить на первое место, а остальные сдвинуть.
если есть12345 то перемещаем 5 в начало, остальное сдвигаем, и получается 100% отличия от первоначального варианта 51234 |
|||
|
||||
sergio11 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.12.2010 Репутация: нет Всего: нет |
Экскалупатор, ну вот так я в ручную сделал, а в цикле ещё пока времени нет придумывать, если кому не лень помогите
![]() |
|||
|
||||
sergio11 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.12.2010 Репутация: нет Всего: нет |
Вот мой курсяк. не могу понять почему не правильно расставляет некоторые элементы? http://fayloobmennik.net/466821
|
|||
|
||||
-Mikle- |
|
||||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
присоединяюсь ко всем ответам. Курсак твой не качал, но чтоб у тебя голова не загорелась, то:
потому что в этом условии перемешиваться будет до тех пор, пока ВСЕ элементы стоят на том же месте (по сути только в самый первый, максимум второй раз)
Соедини через ИЛИ и тогда будет перемешиваться до тех пор, пока хоть один элемент остался на том же месте.
Хотя вот ТАК перемешивать никогда не нужно однозначно. -------------------- Если тебе плюют в спину, значит ты впереди... |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |