3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
1

Дан массив из n элементов. Переставьте его элементы случайным образом

18.01.2019, 15:16. Показов 4496. Ответов 5

Покажите пожалуйста , как поместить в переменную случайное число.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import random
length = int(input("Укажите длину массива: "))
arr = [random.randint(0, 25) for _ in range(length)]
arr.sort()
 
for i in range(length):
    print("arr[", i, "]=", arr[i])
 
tmp = k = q = i = 0
 
while i < length:
    k = random.randint(0, length - 1)
    q = random.randint(0, length - 1)
    tmp = arr[k]
    arr[k] = arr[q]
    arr[q] = tmp
    i += 1
 
print("\nИзменённый массив")
for i in range(length):
    print("arr[", i, "]=", arr[i])
Выдаёт не понятную ошибку когда я просматриваю код в отладчике, а так работает, кто знает почему , напишите пожалуйста.

Добавлено через 6 минут
Или нет, всё работает, только я хочу знать , правильно ли я всё сделал, посмотрите пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2019, 15:16
Ответы с готовыми решениями:

Дан массив из 15 элементов, генерированных случайным образом ( промежуток от -40 до 80). Вывестивсе элементы массива, четных и оканчивающиеся на 4.
Дан массив из 15 элементов, генерированных случайным образом ( промежуток от -40 до 80). Вывестивсе...

Дан массив на 20 элементов заполнены случайным образом от -10 до +20. Найти максимальный элемент.
Помогите плиз))) составить программу Дан массив на 20 элементов заполнены случайным образом от...

Дан массив целых чисел из 25 элементов, заполненный случайным образом числами из промежутка [-35,75]:
(пожалуйста с процедурами и функциями) Дан массив целых чисел из 25 элементов, заполненный...

Массив: Сформировать массив случайным образом, найти произведение его элементов.
Дан массив размера n(одномерный). Сформировать его случайным образом, найти произведение его...

5
Просто Лис
Эксперт Python
4612 / 2987 / 962
Регистрация: 17.05.2012
Сообщений: 8,727
Записей в блоге: 9
18.01.2019, 15:56 2
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
как поместить в переменную случайное число.
Вот так:
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
k = random.randint(0, length - 1)
0
337 / 126 / 114
Регистрация: 09.04.2011
Сообщений: 246
18.01.2019, 19:16 3
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
Дан массив из n элементов. Переставьте его элементы случайным образом
Мб лучше так ?

Python
1
2
3
4
5
6
7
8
9
10
11
12
from random import randint
 
length = int(input("Укажите длину массива: "))
a = [randint(0, 25) for _ in range(length)]
 
print(a)
 
for i in range(len(a)):
    r = randint(0,len(a)-1)
    a[i], a[r] = a[r] , a[i]
    
print(a)
0
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
20.01.2019, 03:03  [ТС] 4
swillrocker, что означает эта строка:
Цитата Сообщение от swillrocker Посмотреть сообщение
a[i], a[r] = a[r] , a[i]
?
0
337 / 126 / 114
Регистрация: 09.04.2011
Сообщений: 246
20.01.2019, 11:43 5
Ivan _pupkin, Обмен значений списка. a[i] меняется местами с случайным a[r].

Немного информации из гугла:

Почему такое возможно? Это связано с тем, что в Питоне существует такая структура данных как кортеж.

При выполнении a,b = b,a интерпретатор Python сначала получает значения связанные с переменными b и a (правая часть) и помещает их в кортеж, в данном случае получится (10, 20). После этого он связывает каждый элемент кортежа в определенной позиции с переменной в той же позиции, но в кортеже слева (a,b).

Таким образом можно поменять значения ни только двух переменных, но и трех, четырех и т. д. Кроме того в Python можно обменять значения переменных разных типов. Такая возможность связана с тем, что тип данных в Питоне привязан не к переменной, а к значению:
1
Эксперт Python
4603 / 2024 / 359
Регистрация: 17.03.2012
Сообщений: 10,078
Записей в блоге: 6
21.01.2019, 17:07 6
Чёт я не понял, в заголовке одна задача, в самом посте другая.
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
Переставьте его элементы случайным образом
random.shuffle. Если без numpy.
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
как поместить в переменную случайное число.
Точно также, как и неслучайное. Или уточните задание.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2019, 17:07
Помогаю со студенческими работами здесь

Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-80,150]
Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка . ...

Дан двумерный массив размером nm, заполненный случайным образом. Найти сумму отрицательных элементов
Помогите, пожалуйста. Дан двумерный массив размером nm, заполненный случайным образом. Найти...

Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-35,75]. Удалить и
Что не так? Подскажите пожалуйста var Form2: TForm2; N: integer; M : array of integer; ...

Дан массив целых чисел из n элементов, заполненный случайным образом числами из заданного пользователями промежутка
Дан массив целых чисел из n элементов, заполненный случайным образом числами из заданного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru