Введение
Quixel - это квантовый пиксель. Подобно классическому пикселю, он представлен 3 целочисленными значениями (красный, зеленый, синий). Тем не менее, киксели находятся в суперпозиции этих 3 состояний вместо комбинации. Эта суперпозиция длится только до тех пор, пока не наблюдается квиксель, и в этот момент он падает до одного из трех классических пикселей; RGB(255,0,0)
, RGB(0,255,0)
И RGB(0,0,255)
.
Спецификация
- Представление
- Каждый quixel представлен в виде массива целых чисел 3 от 0 до 255, r, gи bсоответственно.
- Супер Позиции
- Каждый quixel находится в положении супер между красным, синим и зелеными состояниями представлены R, Gи Bсоответственно.
- наблюдение
- Когда каждый quixel наблюдается, он разрушается в одно из трех состояний. Вероятность каждого классического состояния есть
R = (r + 1) / (r + g + b +3)
,G = (g + 1) / (r + g + b + 3)
аB = (b + 1) / (r + g + b + 3)
. Таким образом, каждое классическое состояние всегда как ненулевая вероятность появления.
- Когда каждый quixel наблюдается, он разрушается в одно из трех состояний. Вероятность каждого классического состояния есть
- вход
- Функция или программа должны сделать снимок с изображением Quixels. Как это сделать, это гибко. Имя файла, использование многомерного массива и т. Д. Все приемлемо.
- Выход
- Функция или программа должны создавать изображение классических пикселей. Структура данных для этого полученного изображения также является гибкой. Обратите внимание , что все пиксели должны быть один из этих трех:
RGB(255,0,0)
,RGB(0,255,0)
иRGB(0,0,255)
- Вывод не должен быть детерминированным ; это квантовые пиксели! Один и тот же вход должен приводить к различным выходам.
- Если ваш язык не может генерировать случайное число, вы можете взять случайные байты в качестве входных данных
- Функция или программа должны создавать изображение классических пикселей. Структура данных для этого полученного изображения также является гибкой. Обратите внимание , что все пиксели должны быть один из этих трех:
- счет
- Это код-гольф, поэтому выигрывает меньшее количество байтов.
Картинки
Мона Лиза от Леонардо да Винчи
Звездная ночь на Винсент Ван Гог
Постоянство памяти от Сальвадора Дали
Тедди Рузвельт VS. Снежный человек от SharpWriter
RGBK
, где K=255*3-R-G-B
, а затем сделайте ваши квантовые пиксели любым из 4. (Если выбрано K, отобразите (0,0,0). Расширьте ваши уравнения RGB в очевидный путь, изменение 3 с на 4 с, добавление K, когда вы добавите R + G + B и т. д.). Размытие после этого должно восстановить довольно приличную шумную копию оригинала. (K означает черный или ключ, если вам интересно)