Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Evgen aka Chuma
Статус: 3-й класс
Рейтинг: 324
∙ повысить рейтинг »
CradleA
Статус: Профессионал
Рейтинг: 42
∙ повысить рейтинг »
Роман Селиверстов
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »

∙ Алгоритмы и теория программирования

Номер выпуска:199
Дата выхода:17.11.2016, 10:45
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:21 / 7
Вопросов / ответов:3 / 6

Консультация # 134499: Уважаемые эксперты! Помогите пожалуйста составить алгоритм записи 5 байт в массив памяти 512 байт (), так чтобы записывались по циклу разные участки памяти (это нужно для продления ресурса памяти, т. к. число перезаписей ограничено) Наверное нужно писать еще 6й байт - адрес текущего блока или какую-то комбинацию, так чтобы при считывании массив...
Консультация # 29444: Здравствуйте. Приведите, пожалуйста, словесный (общий) алгоритм построения бинарного дерева. Построения из набора чисел и если можно, то максимально подробно. Заранее спасибо. ..
Консультация # 51175: Как можно вывести случайное число с определенной вероятностью (в процентах)...

Консультация # 134499:

Уважаемые эксперты!
Помогите пожалуйста составить алгоритм записи 5 байт в массив памяти 512 байт (), так чтобы записывались по циклу разные участки памяти (это нужно для продления ресурса памяти, т. к. число перезаписей ограничено) Наверное нужно писать еще 6й байт - адрес текущего блока или какую-то комбинацию, так чтобы при считывании массива точно определить какие 5 байт были записаны последними. Заранее спасибо.

Дата отправки: 28.04.2008, 12:25
Вопрос задал: Ляудинскайте Юлианна
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Гнедов Андрей:

Здравствуйте, Ляудинскайте Юлианна!
Насколько я понял, Вы пишете 5 байтов в микросхему, которая имеет ограничения по числу циклов стирание/запись, но практически не имеет ограничений на чтение.
Если Вам нужно хранить всего 5 байтов, а у Вас их 512, нужно всю память разделить на блоки, напрмер по 8 байт - 3 байта на номер записи и 5 байт на содержимое. Всего 64 блока, номера 0-63. Смещение блока - номер*8.

При инициализации: вся память записывается нулевыми данными с нужными номерами. Запись производится последовательно, сначала в 0-й - номер 0, потом в 1-й - номер 1, и т.д. После 63-го - опять в 0-й.

При записи ищется последовательная пара номеров, чтобы следующий был меньше предыдущего на 64 ( с учетом кольца, что после 63-его - снова 0-й, а после номера 0xFFFFFF - 0x000000). Тогда второй в этой паре - самый старый, его переписываем.

При чтении: ищется блок с максимальным номером (с учетом, что после номера 0xFFFFFF идет 0x000000) , он и есть последний.

Можно ускорить работу, если при поиске максимального номера просматривать не все 64 записи, а искать переход делением пополам.

Консультировал: Гнедов Андрей
Дата отправки: 28.04.2008, 18:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Errandir:

Здравствуйте, Юлианна!

Я полностью согласен с Андреем, но хочу заметить, что лучше делить на блоки по 6, так как это улучшит коэффициент использования памяти на 20.5%.

Коэффициент использования памяти — отношение памяти использованной для хранения полезной информации на максимальное количество изменений байта по всей памяти ко всей памяти. // если один и тот же участок памяти используется несколько раз, то объём памяти складывается

для 8-и байтового блока: ((64*5)/1)/512=62.5%
для 6-и байтового блока: ((85*5)/1)/512=83.0%

Приложение:

Консультировал: Errandir
Дата отправки: 28.04.2008, 20:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 29444:

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

Дата отправки: 13.11.2005, 00:36
Вопрос задал: Martin
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Schmak:

Здравствуйте, Martin!
Бинарное дерево собственно строить и не надо, его можно задать массивом размерностью n, при этом учитывая, что элемент [i] может иметь:
1) 2-х сыновей [2*i] и [2*i+1]
2) 1-ого сына [2*i] (тогда размер массива [2*i])
3) не иметь сыновей (если [i]-лист)
Исходя из этого каждый элемент дерева [i] (кроме корня (элемент [1])) имеет одного предка [i div 2]

Если же Вы имеете ввиду сортирующее бинарное дерево (известное как Heap) то посетите страничку http://algolist.manual.ru/sort/pyramid_sort.php

Консультировал: Schmak
Дата отправки: 13.11.2005, 11:54
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Lector:

Здравствуйте, Martin!
1. Берём первое число. Это врешина. (15)
2. Берём второе число. (9). Оно меньше чем (15). Ставми его левым листом от 15
15
/
9
3. Берём третье число. (13). Оно меньше (15) и больше (13). Ставим его праым листом от (9)

15
/
9
\
13
4. Берём четвёртое число. (73). Оно больше (15). Ставим его правым листом от (15)
15
/ \
9 73
\
13
И так далее :-)

Консультировал: Lector
Дата отправки: 14.11.2005, 12:06
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 51175:

Как можно вывести случайное число с определенной вероятностью (в процентах)

Дата отправки: 04.08.2006, 21:20
Вопрос задал: Томша Павел
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Сухомлин Кирилл Владимирович:

Здравствуйте, Томша Павел!
Не совсем понятно, что вы имеете ввиду. В приложении функция, которая с вероятностью P% выводит число A, иначе - число B.

Приложение:

Консультировал: Сухомлин Кирилл Владимирович
Дата отправки: 04.08.2006, 23:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Muad Dib:

Здравствуйте, Томша Павел!

Не знаю насколько согласуется с теорией вероятности, но вот такой глупый способ в голову приходит:
Создать массив из всего множества случайных чисел, колличество вхождений каждого числа в массив должно быть пропорционально вероятности выпадения этого числа. А потом random(length(array)).

Консультировал: Muad Dib
Дата отправки: 05.08.2006, 02:20
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное