birdwatcher: (Default)
[personal profile] birdwatcher
Мне не хватает в популярных языках программирования синтаксической конструкции, которая означала бы "устроить в данном месте n вложенных циклов for, индексированных элементами данного целочисленного вектора длины n, где n выясняется в рантайме". Пока что приходится заводить этот вектор самому, и вручную реализовывать в нем алгоритм прибавления единицы столбиком.

Date: 2010-08-13 02:16 am (UTC)
From: [identity profile] morfizm.livejournal.com
Я в таких случаях всегда использую рекурсию. Всё же будет поудобнее, чем прибавлять единицу столбиком.

Date: 2010-08-13 05:43 am (UTC)
From: [identity profile] dmpogo.livejournal.com
А как рекурсия параллелизуется ?

Date: 2010-08-13 08:11 am (UTC)
From: [identity profile] green-fr.livejournal.com
MatLab?
a = 1:10
b = 1:5
c = a'*b
d = c.^2
Аналог стандартного
for a = 1 to 10
  for b = 1 to 5
    d(a, b) = (a*b)^2
  next b
next a

Date: 2010-08-13 08:27 am (UTC)
From: [identity profile] morfizm.livejournal.com
Странный вопрос :)

CreateThread() (http://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx), и всё что угодно параллелизуется ;)
From: [identity profile] freedom_of_sea.livejournal.com
То есть нужно обежать n-мерную матрицу?

Date: 2010-08-14 12:11 am (UTC)
From: [identity profile] birdwatcher.livejournal.com
с матлабом у меня отношения не сложились

Date: 2010-08-14 12:12 am (UTC)

Date: 2010-11-11 02:45 am (UTC)
From: [identity profile] kapahel.livejournal.com
В Python такое есть.

import itertools
n=2
for v in itertools.product(*[range(2)]*n):
    print v

(0, 0)
(0, 1)
(1, 0)
(1, 1)