小编Jac*_*ano的帖子

生成具有均匀概率(或更小)的随机三次图

虽然这可能看起来像家庭作业,但我向你保证不是.这源于我做过的一些家庭作业.

如果每个顶点的度数恰好为3,那么让我们调用一个没有自我边缘"立方"的无向图.给定正整数N我想在N个顶点上生成随机立方图.我希望它具有统一的概率,也就是说,如果N个顶点上有M个立方图,则生成每个顶点的概率为1/M. 一个较弱的条件仍然很好,每个立方图具有非零概率.

觉得有一个快速而聪明的方法来做到这一点,但到目前为止,我一直没有成功.

我是一个糟糕的程序员,请忍受这个糟糕的代码:

PRE:edges =(3*个节点)/ 2,节点是偶数,以哈希工作的方式选择常量(BIG_PRIME大于边缘,SMALL_PRIME大于节点,LOAD_FACTOR小).

void random_cubic_graph() {

int i, j, k, count;
int *degree;
char guard;

count = 0;
degree = (int*) calloc(nodes, sizeof(int));

while (count < edges) {

    /* Try a new edge at random */

    guard = 0;
    i = rand() % nodes;
    j = rand() % nodes;

    /* Checks if it is a self-edge */

    if (i == j)
        guard = 1;

    /* Checks that the degrees are 3 or less …
Run Code Online (Sandbox Code Playgroud)

c random algorithm graph-theory graph

9
推荐指数
1
解决办法
1223
查看次数

过滤Liquid/Jekyll模板中的数组

大多数Liquid"过滤器"实际上是函数编程意义上的"映射":你接受一个数组,你将一个函数应用于每个元素并返回转换后的数组.我想改为"过滤":我想只返回数组中符合特定条件的那些项目.我怎样才能做到这一点?

具体来说,我正在尝试改进此模板:

Authors: 
{% for c in site.data["contributors"] %}
  {% assign contributor = c[1] %}{% if contributor.role contains "author" %}{{contributor.name.given}} {{contributor.name.family}}{% endif %}{% endfor %}
Run Code Online (Sandbox Code Playgroud)

美化,看起来像这样:

Authors: 
{% for c in site.data["contributors"] %}
  {% assign contributor = c[1] %}
  {% if contributor.role contains "author" %}
    {{contributor.name.given}} {{contributor.name.family}}
  {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

其数据如下所示:

ianbarber:
  name:
    given: Ian
    family: Barber
  org:
    name: Google
    unit: Developer Relations
  country: UK
  role:
    - engineer
  homepage: http://riskcompletefailure.com
  google: +ianbarber
  twitter: ianbarber
  email: ianbarber@google.com
  description: …
Run Code Online (Sandbox Code Playgroud)

liquid jekyll

6
推荐指数
2
解决办法
2963
查看次数

使用nil作为键对哈希进行排序

我正在阅读本教程:http://tutorials.jumpstartlab.com/projects/jsattend.html

在迭代7,步骤3中,我们得到一个名为state_data的散列,它将nil作为键.建议的解决方案是:

state_data = state_data.sort_by{|state, counter| state unless state.nil?}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不适用于ruby 1.9.2p290(2011-07-09修订版32553)[x86_64-darwin11.0.0].例如:

~% irb
>> things = { nil => "a", 2 => "b", 3 => "c" }
>> things.sort_by { |k, v| k unless k.nil? }
ArgumentError: comparison of NilClass with 2 failed
    from (irb):6:in `sort_by'
    from (irb):6
    from /Users/jacopo/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)

同样的情况也是如此:

>> things.sort_by { |k, v| k if k }
ArgumentError: comparison of NilClass with 2 failed
    from (irb):3:in `sort_by'
    from (irb):3
    from /Users/jacopo/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)

在教程的情况下,由于它是对状态双字母代码进行排序,因此可能的解决方案是: …

ruby null

2
推荐指数
1
解决办法
4307
查看次数

标签 统计

algorithm ×1

c ×1

graph ×1

graph-theory ×1

jekyll ×1

liquid ×1

null ×1

random ×1

ruby ×1