Quantcast
Viewing all articles
Browse latest Browse all 517023

Генератор матриц - VBA

За неимением другого ПО, пишу в Excel VBA генератор матриц. Суть такова: для заданных числа уровней n и количества факторов k построить матрицу с n[SUP]k[/SUP] строк и k столбцов, заполненную числами от 0 до n-1 так, чтобы строки не повторялись.
Или, переводя с ежиного, каждая строка суть значение её номера в системе счисления с основанием n, разбитое на k ячеек по одному символу в каждой.
Написал код. В нём есть допущения, он узкоспецифичен и наверняка не оптимален, но работает так, как надо. Почти.

Код:

Function DEC2ANYN(A As Integer, n As Integer, pos As Integer) As Integer
  Dim i As Integer, ost As Integer, r As Integer
  r = Fix(Log(A) / Log(n))
  If pos < r + 1 Then r = pos
  i = 0
  Do While i < r
    i = i + 1
    ost = A Mod n
    A = A \ n
  Loop
  If pos = r + 1 Then ost = A
  If pos > r + 1 Then ost = 0
  DEC2ANYN = ost
End Function

Получаю для случая n = 2 и k = 6 следующее:
(ошибку в строках 8 и 64, тех, где вычисленный логарифмом r из первой строки кода - целое число)
http://cs627426.vk.me/v627426689/67711/VPibc5jc8q0.jpg
Предположил, что проблема в округлении, но за неимением опыта работы с VBA (только VB и мноооого лет назад), не могу её решить. Помогите!

Viewing all articles
Browse latest Browse all 517023

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>