虽然这可能看起来像家庭作业,但我向你保证不是.这源于我做过的一些家庭作业.
如果每个顶点的度数恰好为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) 大多数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) 我正在阅读本教程: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)
在教程的情况下,由于它是对状态双字母代码进行排序,因此可能的解决方案是: …