Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24

Исправить баг

03.11.2019, 15:54. Показов 4485. Ответов 32
Метки нет (Все метки)

Необходимо исправить баг в коде ниже, я пыталась это сделать разными способами, ничего не получается( Если я правильно поняла суть бага в том, что там сохраняется цифра, каждый раз новая. А если нам нужна старое значение, то его уже нет, желательно с пояснением, заранее спасибо)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def hash(key):
 
    return len(key)
 
storage = [0] * 13
 
def set_value(key):
 
    index = hash(key)
 
    return storage[index]
 
def get_value(key,value):
 
    index = hash(key)
 
    storage[index] = value
 
get_value("XYZ", 7)
 
get_value("ABC", 42)
 
print(set_value("XYZ"))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2019, 15:54
Ответы с готовыми решениями:

Исправить баг
import random #***************************** digit = 0 dig1 = 0 dig2 = 0 dig3 = 0 #**************************** x = 0 x1 =...

Как исправить ошибку: формат теста исправить нельзя, только текст программы
class AmericanDate: def __init__(self, y, m, d): self.get_year = str(y) self.get_month = str(m//10)+str(m%10) ...

Исправить баг
сайт mixdoors.ru, плагин mavik Thumbnails (увеличение изображения ) работает в материалах, но не работает на страницах virtuemart, на...

32
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 18:00  [ТС]
Рыжий Лис, спааасибо)
0
03.11.2019, 18:01

Не по теме:

хватит звать меня по нику

0
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 19:33  [ТС]
Рыжий Лис, вы наверное будете гореть с моей тупости( но вот что сказал преподаватель)
"Если я заведу 2 ключа: abc и cba со значениями 1 и 2 соответственно, то cba перезапишет abc. Т.е. коллизии не обрабатываются."
задание было "Избавиться от коллизии"

Добавлено через 52 секунды
Рыжий Лис, А как правильно к вам обращаться?(
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:01
Вот! Шла вторая страница треда, и мы выяснили задание.

К сожалению, с ходу подсказать решение не могу. Предлагаю почитать это: https://neerc.ifmo.ru/wiki/index.php?oldid=68142

Не по теме:

Цитата Сообщение от harlyk Посмотреть сообщение
Рыжий Лис, А как правильно к вам обращаться?(
Просто не нажимай на ник, чтобы не вставлялось [nick]Рыжий Лис[/nick]. Я и без этого вижу новые сообщения.

0
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 20:09  [ТС]
вот так вот бывает)) а если не сходу?( спасибо за помощь

Добавлено через 1 минуту
ОООчень надеюсь на вашу помощь, от этого зависит мой зачёт, а я туплю по черному) но буду пытаться и надеяться на вас(

Добавлено через 4 минуты
помогите(((

Добавлено через 14 секунд
помогите(((
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:13
Лучший ответ Сообщение было отмечено harlyk как решение

Решение

Открытая адресация

В массиве H хранятся сами пары ключ-значение. Алгоритм вставки элемента проверяет ячейки массива H в некотором порядке до тех пор, пока не будет найдена первая свободная ячейка, в которую и будет записан новый элемент. Этот порядок вычисляется на лету, что позволяет сэкономить на памяти для указателей, требующихся в хеш-таблицах с цепочками.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#уроки во школе серы и скучны
#веселья ни грамма в глазах школоты
 
 
size = 13
storage = [None] * size
 
def hash(key):
    result = 0
    for i in key:
        result += ord(i)
    return result % size
 
def set_value(key, value):
    index = hash(key)
    while storage[index]:
        index += 1
    storage[index] = key, value
 
def get_value(key):
    index = hash(key)
    key2, value = storage[index]
    while key2 != key:
        key2, value = storage[index]
    return value
 
 
print(storage)
set_value('abc', 7)
print(storage) 
set_value('cba', 42)
print(storage)
assert get_value('abc') == 7
print(storage)
Отсутствует проверка на выходы за границы списка.

Состояние хранилища:
Code
1
2
3
4
[None, None, None, None, None, None, None, None, None, None, None, None, None]
[None, None, None, None, None, None, None, None, ('abc', 7), None, None, None, None]
[None, None, None, None, None, None, None, None, ('abc', 7), ('cba', 42), None, None, None]
[None, None, None, None, None, None, None, None, ('abc', 7), ('cba', 42), None, None, None]
То есть храниться пара (ключ, значение). Если ячейка уже занята, то берётся следующая.
0
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 20:26  [ТС]
Рыжий Лис, огромное спасибо

Добавлено через 11 минут
скажи пожалуйста, что делает эта строка ?
Python
1
assert get_value('abc') == 7
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:28
это проверка, можете её удалить

Добавлено через 23 секунды
Если условие ложное, то бросится исключение.
0
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 20:29  [ТС]
Рыжий Лис, Если ввести cba 42, то зацикливается( ваш вариант когда
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:33
Python
1
2
3
4
5
6
7
def get_value(key):
    index = hash(key)
    key2, value = storage[index]
    while key2 != key:
        index += 1 #забыл
        key2, value = storage[index]
    return value
0
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 20:51  [ТС]
спасибоооо) вы бог)

Добавлено через 7 минут
мне все ещё требуется ваша помощь, ответ преподавателя(
"Когда storage заполнится это всё упадёт."
видимо не судьба это сдать(

Добавлено через 5 минут
Рыжий Лис, и меня минусанули на -41(( я просто очень тупая и переживаю( простите
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:52
Оно упадёт ещё раньше, потому что его заполнение идёт не сначала.

Добавлено через 48 секунд
Отсутствует проверка на выходы за границы списка.
Так добавьте.
0
-16 / 1 / 0
Регистрация: 23.06.2019
Сообщений: 24
03.11.2019, 21:48  [ТС]
и что с этим делать? Точнее как это сделать?

Добавлено через 1 минуту
Рыжий Лис, честно говоря, я запуталась и не особо понимаю, что происходит(

Добавлено через 28 минут
Помогите, сделать чтобы не падало) я думаю, я вас очень бешу свое тупостью и тем что, ною( и спасибо за всё что вы сделали

Добавлено через 6 минут
Рыжий Лис, мне надо просто расширить список, чтобы не падало?

Добавлено через 10 минут
Рыжий Лис, это конец?(

Добавлено через 5 минут
Рыжий Лис, Моего знания языка недостаточно чтобы это сделать, прошу вашей помощи)

Добавлено через 2 минуты
Рыжий Лис, хотя бы дайте намек)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2019, 21:48

Как исправить баг?
Проблема следующая, при вводе play game или analyaze document меня должно перебросить в игру("угадай число") или проанализировать...

Баг ,как исправить?
Добрый день хотел бы обратиться к вам за помощью есть код : using System.Collections; using System.Collections.Generic; ...

Исправить баг (не фичу)
В моей игре не всегда работает начало новой игры при нажатии на "начать игру", просто пустой экран. Но не всегда, бывает работает бывает...

Как исправить баг
Ребята помогите исправить баг Win8x64

Исправить баг в программе
Здравствуйте уважаемые форумчане. На скорую руку набросал программу, в которой показываются картинки с животными и нужно выбрать первую...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
alhaos 16.06.2026
Insert Delete GetRandom O(1) Сложность: Medium Источник: LeetCode 380 Задача Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
Свет в конце тоннеля
kumehtar 16.06.2026
Поймал себя на одной мысли. Раньше мне всегда казалось неправильным жить без чёткого понимания, куда всё идёт. Будто я иду по дороге судьбы, но не знаю, куда она ведёт. А раз не знаю — значит,. . .
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
alhaos 16.06.2026
Min Stack Сложность: Medium Источник: LeetCode 155 Задача: Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1). Методы:
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru