Pull to refresh
82
0
Валерий @Vayun

Пользователь

Send message
Для файла на ввод можно ваш вариант, для клавиатуры readline)

А если у нас сокет или двухсторонний пайп и мы ждем с другой стороны ровно одну строку, но без EOF (команду, запрос, ответ), то буферизация будет сильно мешать.
Ага, пример не очень удачный. Хотя если имена файлов лежат в переменных, то даже вызов Popen в Си требует танцев с буферами для строк и тд.
Если уж сравнивать то примеры надо брать рабочие) Хотя, не считая кол-во скобок, смотрится тоже не плохо

using System;
using System.IO;
 
class Sample
{
  static void Main() {
    using(FileStream infile = File.OpenRead(@"test.in")) {
      using(FileStream outfile = File.OpenWrite(@"test.in.inv")) {
        int b;
        while (-1 != (= infile.ReadByte())) {
          outfile.WriteByte((byte)~b);
        }
      }
    }
  }
}
Все есть, но не нравится, не перловое ООП какое-то в перле (а без strict и warnings вообще что-то длинней 20 строк писать опасно).

Мое личное впечатление, не обязательно правильное)
В таком варианте почему-то получается не строго построчно (хотя для обработки пайпа я думаю пойдет). Попробуйте запустить в консоли и попечатать.
Это верно. Я люблю Перл, но ООП в нём у меня как-то не пошло, какое-то оно там кривое по сравнению со всем остальным. Что-то большое писать на Перле ИМХО довольно сложно, сам язык провоцирует писать непонятные программы (даже если и понятно мне не значит, что будет понятно другим или мне же через год).
Вот пример получше) Открываем файл test.in и копируем его в test.in.inv, попутно применив битовое 'НЕ'.

from __future__ import with_statement
with open("test.in""rb") as infile:
    with open("test.in.inv""wb") as outfile:
        outfile.write(''.join([chr(~ord(x)&0xFF) for x in infile.read()]))
Perl — король онлайнеров (от англ. oneline — одна строка), если надо что-то быстро один раз прожевать регулярками.
Есть еще такое понятие как Fair use) Шарахаться от всего в интернете, на чем не написано большими буквами «РАЗРЕШЕНО» тоже глупо.

Но если автор хочет продавать, то конечно нужно убрать.

Просто догадаться о том, что картинка с сайта-магазина не так просто, ибо все эти водяные знаки не запомнишь (особенно те которые не содержат вебадреса и/или имени и/или знака копирайта)
Можно добавить сахару, написав генератор

import sys
 
# пишем генератор
def lines(file):
    while 1:
        line=file.readline()
        if line:
            yield line
        else:
            break
 
# пользуемся
for line in lines(sys.stdin):
    print ">", line
Если быть точным то urandom становится чистым ГПСЧ, после того как накопленный ядром запас энтропии будет исчерпан. А вот random в этом случае просто приостановит вывод.
Если понравилось, рекомендую почитать и комментарии (те что без картинок). В них затронуты несколько интересных моментов не освещенных в статье.
Статья не для тех кому сильно нужно, а для интересующихся. Тема младших битов, наводок и тд раскрыта к комментариях.
Лично я удивлен не буду, тк тестировал)

Die Hard'ом тестировался вывод SB Live 24bit (когда она у меня была) в 24 битном режиме. Данные прошли тест, уже не помню точно вероятность, но близко к 99%.

Сейчас мне было лень его пересобирать, поэтому я использовал «NIST Statistical Test Suite», который не хуже, я бы сказал лучше, тк их методика подробно расписана в статье csrc.nist.gov/publications/nistpubs/800-22-rev1/SP800-22rev1.pdf (англ.). В моем тесте использовалась выборка из 100 последовательностей по 5000000 бит. Преодолен установленный порог для всех тестов, кроме двух (по понятным причинам, для них нужны очень длинные последовательности). Генератор случайный с 99% вероятностью.

К тому же, никто не запрещает использовать алгоритмы для неидеальных источников, тк случайность там присутуствует, даже если она засорена чем-то (а еще можно уменьшить/убить корреляции записью в стерео режиме, что тут не обсуждалось). Идея статьи использовать минимум обработки, чтобы оценить кол-во энтропии в сигнале как таковом.

А то что для разного харда, разные результаты, я не отрицаю (хотя формулировочка у вас далека от нейтральной). И шифровать государственные тайны этими ключами не агитирую)
Главной предпосылкой к эксперименту, является окружающий нас мир) Эксперимент это изучение явлений природы в контролируемых, повторяемых условиях (определение «из головы», на истину в последней инстанции не претендую).

«Описать» не смысле записать числа на бумажку, а ответить (постараться) на вопросы «как» и «почему».
Несомненно. Где я утверждал обратное?)
В таком варианте большую роль играет качество ГПСЧ.
Это вопрос больше философский) Задача физики — описать эксперимент и предсказать резульат аналогичного эксперимента в будущем.

В данный момент, для определенного класса процессов (квантовых) мы можем предсказать лишь распределение вероятности результата, но не результат каждого отдельно измерения.

Да что в квантовую физику лезть? Пример из классической: нелинейная динамика с.м. ru.wikipedia.org/wiki/Эффект_бабочки
> Если бы шум при оцифровке нулевого сигнала был идеален, то Ваша процедура unbiasing была бы вообще ненужна… Если она нужна — значит там не совсем шум.

Полагаю что «идеальным» вы считаете т.н. «белый шум». Проблема в том, что в природе он практически не встречается.

То что распределение процесса не равномерно, отнюдь не значит, что он не случайный. Абсолютно все аппаратные ГСЧ (будь то радиоактивный распад, оцифровка «голосов космических цивилизацай» или пролет фотонов через полупрозрачное зеркало), требуют последующего unbiasing. Даже если источник идеальный, процесс оцифровки вносит сдвиг в распределение (тот самый bias).

Сама идея выравнивания распределения и алгоритм использованный в статье были предложены фон Нейманом, при описании экспериментов с неидеальной монетой (а идеальных монет как мы знаем не бывает).

> Если бы шум при оцифровке нулевого сигнала был идеален, то Ваша процедура unbiasing была бы вообще ненужна… Если она нужна — значит там не совсем шум.

В принципе можно попробовать устранить подобные вещи, путем оцифровки в стереорежиме. В полученных двух каналах затем необходимо удалить общую составляющую.

Спасибо за интересные комментарии.)
В двух словах описать я не возьмусь, тряпками закидают) Гляньте Википедию или какие-нибудь популярные статьи.

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Date of birth
Registered
Activity