c# - 用基于位置的值填充二维数组的有效方法
问题描述
有以下代码:
public int[,] GenerateArray(int size)
{
int[,] data = new int[size, size];
for (int x = 0; x < size; ++x)
for (int y = 0; y < size; ++y)
data[x, y] = x * y; // Example calculation function that depends on indexes
return data;
}
如您所见,我正在尝试用值填充二维数组。每个元素的值都是根据它的索引计算的。需要处理的数据量巨大,因此需要一些时间来处理。有没有更有效的方法来实现这一目标?比如,使用 GPU 着色器或其他东西。
解决方案
您可以不使用数组,而是使用数学函数吗?如果您需要 [2123,453] 位置,您只需使用 func(2123,453) 计算它的数据。如果您需要保护数据,您可以只保护这个修改后的部分。
我认为您可以使用基于 GPU 的 Task.Run 进行并行计算
数组大小和计算函数是什么?
推荐阅读
- java - 如何提高spring mvc中批量事务的性能
- tibco - 如何使用 Render-CSV BW 步骤中重复的字段基数?
- ajax - 使用 laravel 和 simple-peer 进行数据通道的 WebRTC 错误
- python-3.x - 当我运行此代码时,出现错误:“TypeError:参数必须是字符串或数字”
- mongodb - MongoDB 中的 $type(聚合)
- odoo - 在 Qweb 中如何根据用户选择的值(odoo)过滤数据?
- java - 当我尝试运行我刚刚创建的 jar 文件时,Maven 错误“无法初始化主类”
- python - 除了块之外的打印语句
- spring - 在实体中自动填充 created_date、last_modified_date、created_by 和 last_modified_by:使用 JPA 进行休眠
- sql - Postgres JSONB 按版本号选择,只返回最新的