最新 | 最热门 | 最高评价

+1  100行代码的压缩前缀树: 50% smaller

Tag: algo | memory | succinct | trie | bitmap
张炎泼(xp) 发于 2021年02月01日 08:00 | 点击: 893 | 展开摘要
这文介绍一个压缩前缀树实现的sorted set(github: succinct.Set), 区区95行代码, 包含了一组完整的功能:

用 前缀树 存储一个排序数组, 去掉指针, 压缩掉50%的空间;
例如在本文的例子中, 存储2.4MB的200万个单词, 只需要1.2MB.

创建: 从key列表创建一个压缩的前缀树;

查询: 支持Has() 操作来查询1个key是否存在;

优化: 通过索引来加速 bitmap 的操作, 将较大的 bitmap 操作优化到O(1)的

查看全文: http://www.udpwork.com/item/17474.html

+0  slimarray: gzip的压缩率, 即时访问

Tag: algo | array | 数组 | compress | succinct
张炎泼(xp) 发于 2020年11月15日 08:00 | 点击: 499 | 展开摘要
slimarray

场景和问题

在时序数据库, 或列存储为基础的系统中, 很常见的形式就是存储一个整数数组,
例如 slim 这个项目按天统计的 star 数:

这类数据有有很明显的统一的变化趋势, 对这类数据的存储,
我们可以利用数据分布的特点, 将整体数据的大小压缩到几分之一.
这就是 slimarray 要做的事情.

使用 slimarray, 可以将数据容量减小到gzip差不多的大小,
同时还能允许直接访问这些数据!
测试中我们选择了2组随机数, 以及现实中的

查看全文: http://www.udpwork.com/item/17477.html

+0  LinearSVC versus SVC in scikit-learn

Tag: machine learning | scikit-learn
Robin Dong 发于 2019年01月26日 11:32 | 点击: 1691 | 展开摘要
In competition ‘Quora Insincere Questions Classification’, I want to use simple TF-IDF statistics as a baseline.

def grid_search(classifier, parameters, X, y, X_train, y_train, X_test, y_test, name = 'SVC'):
begin = time.ti

查看全文: http://www.udpwork.com/item/17299.html

+0  Prediction of Red Wine Quality

Tag: machine learning | Kaggle | scikit-learn
Robin Dong 发于 2018年08月10日 14:22 | 点击: 1503 | 展开摘要
In Kaggle platform, there is an example dataset about Quality of Red Wine. I wrote some code for it by using scikit-learn and pandas:

import pandas as pd

from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import ExtraT

查看全文: http://www.udpwork.com/item/17015.html

+0  Use PCA (Principal Component Analysis) to blur color image

Tag: machine learning | PCA | scikit-learn
Robin Dong 发于 2018年08月03日 11:33 | 点击: 1091 | 展开摘要
I wrote an example of blurring color picture by using PCA from scikit-learn:

import cv2
import numpy as np

from sklearn.decomposition import PCA

pca = PCA(n_components = 0.96)

img = cv2.imread("input.jpg")
reduced = pca.fit_tr

查看全文: http://www.udpwork.com/item/17016.html

+0  RTTNW-ch4:Perlin Noise

Tag: Ray Tracing
止戈 发于 2018年07月02日 21:54 | 点击: 1164 | 展开摘要
柏林噪声由Ken Perlin发明,很多人使用柏林噪音来获得一个比较酷的纹理效果。

Perlin纹理不会像这样返回白噪声:

相反,它返回类似于模糊白噪声的东西:

除了简单迅速以外,柏林噪声的另一个关键特性是它对于相同的输入永远返回相同的随机数字,输入点附近的点返回近似的数字。

class perlin {
public:
float noise(const vec3& p) const {
float u = p.x() - floor(p

查看全文: http://www.udpwork.com/item/17133.html

+0  RTTNW-ch3:Solid Textures

Tag: Ray Tracing
止戈 发于 2018年07月01日 23:44 | 点击: 1086 | 展开摘要
图形中的纹理通常表示在表面上生成颜色的函数,我们将首先使所有颜色成为一种纹理。

class texture {
public:
virtual vec3 value(float u, float v, const vec3& p) const = 0;
};

class constant_texture : public texture {
public:
constant_texture() { }

查看全文: http://www.udpwork.com/item/17134.html

+0  RTTNW-ch2:Bounding Volume Hierarchies

Tag: Ray Tracing
止戈 发于 2018年06月29日 02:21 | 点击: 1031 | 展开摘要
这部分是迄今为止我们正在研究的光线追踪器中最困难的部分。

我们的光线与物体相交点是光线追踪器的主要时间瓶颈,时间是与物体的数量呈线性关系。但它是对同一个模型的重复搜索,所以我们可以使用二分搜索进行对数查找。

两个最常见的排序方法是划分空间和划分对象。后者通常是编码起来更容易,而且大多数模型的运行速度都很快。

关键在于在找到一个边界体积包围所有物体。

if (ray hits bounding object)
return whether ray hits bo

查看全文: http://www.udpwork.com/item/17135.html

+0  RTTNW-ch1:Motion Blur

Tag: Ray Tracing
止戈 发于 2018年05月30日 19:02 | 点击: 892 | 展开摘要
Peter Shirley有三本光线追踪的书:

《Ray Tracing In The Weekend》:用两天学光线追踪

《Ray Tracing The Next Week》:用一周学光线追踪

《Ray Tracing The Rest Of Your Life》:用余生学光线追踪

 

接下来的一系列笔记是第二本书,这篇讲动态模糊。

 

在现实生活中,我们拍照时相机会打开一段时间,在其期间会因为摄像机抖动或拍摄物体运动而造成相片模糊,我们

查看全文: http://www.udpwork.com/item/17139.html

+0  RTIOW-ch12:Where next

Tag: Ray Tracing
止戈 发于 2018年05月21日 22:55 | 点击: 762 | 展开摘要
制作书籍的封面图:

cpp:

#include <iostream>
#include <fstream>
#include <random>
#include "sphere.h"
#include "hitable_list.h"
#include "camera.h"
#include "material.h"

using namespace std;

//获得反射射线
vec3 RandomInUnitsphere()
{

查看全文: http://www.udpwork.com/item/17140.html

+0  RTIOW-ch11:Defocus Blur

Tag: Ray Tracing
止戈 发于 2018年05月19日 00:51 | 点击: 949 | 展开摘要
散焦模糊”在摄影上又称“景深”。

在现实的相机中,我们需要做“散焦模糊”的原因是:我们需要一个更大的孔来收集光线增加图片的亮度(而不是“针孔”)。我们称“更大的孔”为“光圈”。

光圈的增大,导致图片出现散焦而模糊。

但是我们可以调节成像的位置,改变图片的清晰度,使图片在当前光圈条件下尽可能清晰。

所以,接下来,我们会引入两个参数:aperture(光圈)和focus_dist(成像位置)。

camera.h:

#ifndef cameraH
#define cam

查看全文: http://www.udpwork.com/item/17141.html

+0  RTIOW-ch10:Positionable camera

Tag: Ray Tracing
止戈 发于 2018年05月17日 21:08 | 点击: 785 | 展开摘要
我们的相机之前一直都是固定死的,这次让我们来做些改变,让我们使用一个可调整的视野(fov)。

先看一下我们之前是如何设置camera的:

特别需要注意的是,这是在z=-1的平面上。

当时是这么说的:已知Z=-1平面上四点的坐标,我们可以求出下面三个值。

       vec3 lower_left_corner(-2.0, -1.0, -1.0);

       vec3 horizontal(4.0, 0.0, 0.0);

       vec3 vertica

查看全文: http://www.udpwork.com/item/17142.html
|<<<1234567>>>| 一共9页, 99条记录