Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25

Заменить случайный список указанным

26.09.2020, 18:27. Показов 2540. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тут есть программа, и этот программа работает с рандомом. И тут нужно изменить рандом на массивы, чтобы программа взял значение из массива. Кто может помочь и реализовать это? Буду очень благодарен!!! Если что-то не понятно, спросите!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import random
n = int(input("n:"))
a = [random.randrange(0,5) for i in range(n)]
b = [random.randrange(5,9) for j in range(n)]
c = []
 
for i in a:
    c.append(i)
print(a)
print(b)
 
def recurs(x):
    for j in range(a[x], b[x]+1):
        c[x]=j
        if x+1<=n-1:
            recurs(x+1)
        if x == n-1:
            print(c)
recurs(0)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2020, 18:27
Ответы с готовыми решениями:

Заменить элементы массива по указанным правилам
Дан двумерный массив случайных чисел. Все положительные элементы этого массива заменить на число (-2), нули без изменений, а ...

Как заменить случайный пробел ?
Приветствую, Как заменить случайный пробел в строке случайным числом ?

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

19
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
26.09.2020, 18:35
Draxler NR,
Python
1
2
a=[1, 4, 3, 4, 0, 0, 1, 0, 0, 2]
b=[1, 4, 3, 2, 3, 0, 3, 4, 2, 3]
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
26.09.2020, 20:02  [ТС]
Я походу не правильно написал, Как можно в рекурси правильно написать?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
a = [1, 4, 3, 4, 0, 0, 1, 0, 0, 2]
b = [1, 4, 3, 2, 3, 0, 3, 4, 2, 3]
 
c = []
 
for i in a:
    c.append(i)
print(a)
print(b)
 
def recurs(x):
    for j in range(a[x], b[x]+1):
        c[x]=j
        if x+1<=a-1:
            recurs(x+1)
        if x+1<=b-1:
            recurs(x+1)
        
        
        if x == a-1 and x == b-1:
            print(c)
recurs(0)
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
26.09.2020, 21:32
Draxler NR, Что то как то никак...
Объясни, что твоя программа должна делать и почему ?
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 09:15  [ТС]
В этой программе ты указываешь количество столбцов, и если ты допустим ввел 2, то программа будет выводить два столбца, и они оба будут выводить от 0 до какого-то рандомного числа. Короче рандомные числа будут выводится. А мне нужно чтобы этот
программа брал значение из массива. Надеюсь понятно объяснил.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2020, 09:25
Draxler NR, теперь объясни, зачем здесь рекурсия?

Добавлено через 6 минут
Цитата Сообщение от Draxler NR Посмотреть сообщение
if x+1<=a-1:
Python
1
if x+1 <= len(a)-1:
Цитата Сообщение от Draxler NR Посмотреть сообщение
if x+1<=b-1:
Python
1
if x+1 <= len(b)-1:
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 09:33  [ТС]
Нам сказали что нудно сделать с рекурсией
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2020, 09:34
Ну вот я тебе написал что нужно поправить в твоем коде чтоб заработало
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 09:38  [ТС]
Вот этот часть как можно изменить? Ошибку выдает
if x == a-1 and x == b-1:
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2020, 09:42
Draxler NR, ты издеваешься чтоли?
Смотри пост №6
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 09:58  [ТС]
Нет, программа не работает, он просто массивы выводит.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.09.2020, 10:03
Python
1
print(с)
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 10:14  [ТС]
Так я и писал с print(c), но без успешно
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
27.09.2020, 10:31
Draxler NR,
Давай по пунктам
Даны два массива. Из них нужно сформировать один. Так?
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 10:37  [ТС]
Если не трудно проверьте эту программу, вот нужно чтобы программа выводила точно также, но нужно чтобы программа значение брал из двухмерного массива. Короче вместо рандома(колесика) нужно двухмерны массив записать.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import random
n = int(input("n:"))
a = [random.randrange(0,5) for i in range(n)]
b = [random.randrange(5,9) for j in range(n)]
c = []
 
for i in a:
    c.append(i)
print(a)
print(b)
 
def recurs(x):
    for j in range(a[x], b[x]+1):
        c[x]=j
        if x+1<=n-1:
            recurs(x+1)
        if x == n-1:
            print(c)
recurs(0)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2020, 10:58
Лучший ответ Сообщение было отмечено Draxler NR как решение

Решение


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
n = len(a)
print('a: ', a)
print('b: ', b)
 
c = [i for i in a]
 
 
def recurs(x):
    for j in range(a[x], b[x] + 1):
        c[x] = j
        if x + 1 <= n - 1:
            recurs(x + 1)
        if x == n - 1:
            print(c)
 
 
recurs(0)
1
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
27.09.2020, 10:58
Draxler NR, Ну, смотри:
В 8-й строке кода ты в список "с" дублируешь значения списка "а"
В функции "recurs" каждый элемент списка "с" последовательно меняется на соответствующий элемент списка "b".
В итоге получаешь список "с", равный списку "b".
Поэтому и спрашиваю, по какому условию заполняется список "с"?
Допустим условие может быть таким - все нечетные по индексу элементы списка "с" равны нечетным по индексу элементам списка "а"... А четные - четным списка "b".
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 25
27.09.2020, 11:43  [ТС]
Можете объяснить теперь, что к чему? И да извините что так поступил, реально не знал!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
n = len(a)
print('a: ', a)
print('b: ', b)
 
c = [i for i in a]
 
 
def recurs(x):
    for j in range(a[x], b[x] + 1):
        c[x] = j
        if x + 1 <= n - 1:
            recurs(x + 1)
        if x == n - 1:
            print(c)
 
 
recurs(0)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2020, 11:45
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
создали два списка, вручную, как ты и просил

print('a: ', a)
print('b: ', b)
вывели их на экран посмотреть

n = len(a)
вместо ввода длины массивов с консоли, присвоили длину "готового" массива

c = [i for i in a]
сделали копию списка "а" в список "с"

Ну а дальше идет твоя рекурсия. Как она работает, в двух словах не расскажу, многабуков.
1
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
27.09.2020, 11:54
Лучший ответ Сообщение было отмечено Draxler NR как решение

Решение

Draxler NR,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def recurs(x):
# передалось х = 0
# цикл от а[0] до b[0] включительно
    for j in range(a[x], b[x] + 1):
# с[0] принимает поочередно значения, меняя их
# так, что последним будет число, равное b[0]
        c[x] = j
# х + 1 = 0 + 1 = 1 < n - 1
    if x + 1 <= n - 1:
# х увеличивается на единицу и вызывается рекурсивно эта же функция
# при котором с[1] становится равным b[1]
# и так, пока х не достигнет конца списка "с"
        recurs(x + 1)
    if x == n - 1:
# в итоге все(!) значения списка "с" равны значениям списка "b"
        print(c)
 
recurs(0)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2020, 11:54
Помогаю со студенческими работами здесь

Заменить строку ListBox с указанным индексом
В ListBox1 несколько строк. Стали курсором на 4-ю. отредактировали текст в текстовом окне ListBox1 нажали или переместили фокус на другой...

Заменить 3 числа в соответствии с указанным правилом
/*Задание 8 вариант 20,Если одно из действительных чисел xyz=0 то каждое из этих чисел заменить на полусумму двуx других иначе...

В тексте заменить буквы указанным образом
Структурированные типы данных. Строки. Символьные структуры. В каждом слове текста замените &quot;а&quot; на букву &quot;е&quot;, если...

Вывести список в соответствии с указанным требованием
Когда вы вступите в Благотворительный Орден Программистов ( БОП ) , к вам могут обращаться на заседаниях БОП по вашему настоящему имени, по...

дан список городов с указанным количеством жителей. список упорядочен по количеству жителей. вывести название городов с наименьший численностью
дан список городов с указанным количеством жителей. список упорядочен по количеству жителей. вывести название городов с наименьший...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru