Argh! Tôi biết tôi sẽ nhận được điều này cuối cùng nhưng vào thời điểm này tôi gần như 2 giờ vào nó và vẫn còn bị mắc kẹt.Cần trợ giúp về thuật toán để giải quyết chỉ mục thông qua mảng bị lởm chởm
Tôi cần phải giải quyết các chỉ mục riêng lẻ cho từng "mức" của một mảng răng cưa cho một vị trí cụ thể. Thật khó để giải thích, nhưng nếu bạn tưởng tượng một mảng răng cưa 3 cấp có độ dài [2,3,4]. Nếu bạn sau đó đã flatten rằng ra thành một mảng duy nhất nó sẽ có một kích thước 24. Bây giờ, chúng ta hãy nói rằng bạn cần phải tìm các chỉ số (một cho mỗi cấp độ của các mảng răng cưa) mà sẽ bằng chỉ số mảng duy nhất 22. Nó sẽ là 1,2,1. Nó không khó để tìm ra một kịch bản duy nhất, nhưng tôi đang cố gắng tìm ra những gì các thuật toán là để giải quyết các giá trị này cho một mảng sâu răng cưa biến.
Đây là một mẫu mã đơn giản của nỗ lực hiện tại của tôi:
using System;
class Program
{
static void Main(string[] args)
{
// Build up the data and info about level depth
int[] levelDepth = new[] { 2, 3, 4 };
int[][][] data = new int[][][]
{
new int[][] { new int[4], new int[4], new int[4] },
new int[][] { new int[4], new int[4], new int[4] }
};
int requestedValue = 22;
float temp = requestedValue;
// Store the index of each level array to get to the index
// for the requested value
int[] levelIndexes = new int[3] { 0, 0, 0 };
// The following does not work!
int i = levelDepth.Length;
while (i > 0)
{
temp = temp/levelDepth[i - 1];
levelIndexes[i - 1] = (int)Math.Round(temp);
i--;
}
}
}
Nó không làm việc một cách chính xác, mặc dù nó hầu như được tôi những gì tôi cần, nhưng tôi nghĩ rằng có thể chỉ là may mắn. Tôi nghi ngờ đây là một vấn đề phổ biến đã được giải quyết trước đây, tôi chỉ không có kinh nghiệm để tìm ra nó. Ngoài ra, trước khi bất cứ ai nói với tôi rằng sử dụng mảng như thế này là khủng khiếp hoặc "tại sao bạn không lưu trữ dữ liệu của bạn như thế này" - Mô tả và mã trên mô phỏng bố cục của một số chip giải mã trên phần cứng của chúng tôi và Tôi cần phải làm việc ra một cách để giải quyết một con đường đến một đồ thị cụ thể của các tầng cascading, ví dụ trên chính xác phù hợp với cách bố trí của các chip.Tôi đang bị mắc kẹt với nó ..
Bạn có cần chỉ số thực tế hay chỉ giá trị của phần tử thực tế tại thời điểm đó? – drharris
@drharris - chỉ số –