Привет Я хочу сгенерировать матрицу случайных данных, например row * col = 30000 * 500000. Я пытался использовать VBA в Excel, чтобы замедлить работу; 64-битный R был заморожен, даже я использовал пакет bigmemory на моем ящике памяти 8G. Чтобы сделать это как можно быстрее, следует ли использовать C? Является ли параллельное программирование на Java 8 полезным для этой проблемы? У кого-то был опыт с этим? Очень признателен!быстрый способ генерации массивной матрицы случайных данных
ответ
Если каждое из ваших случайных чисел занимает четыре байта, вам необходимо 60000000000 байт, то есть 60э9 байт или 55 гигабайт. Неудивительно, что вы не можете держать их все сразу в памяти на компьютере с 8 гигабайтами.
Если вам действительно нужно много случайных чисел (с какой целью?), Ваш единственный шанс записать их в большой файл, а затем использовать их через файл acess. Альтернативно, просто создавайте их на лету, когда это необходимо; что лучше зависит от вашего конкретного приложения.
Если вам также нужно хорошее качество, я бы предложил использовать компилятор/библиотеку с хорошим встроенным случайным номером gernerator.
Вот небольшая примерная программа Fortran о том, как может выглядеть программа для записи такого файла. Не стесняйтесь адаптироваться к выбранному вами языку.
program random
implicit none
integer, parameter :: nx = 30000, ny=500000
real, dimension(ny) :: r ! A real array of length ny, i.e. 500000
integer :: i
open(20,file="random.dat",form="unformatted",access="stream") ! Byte stream access
do i=1,nx ! Do this nx times
call random_number(r) ! Fill up the array with pseudorandom numbers
write (20) r ! Write it to the file
end do
close(20)
end program random
- 1. Самый быстрый способ генерации случайных битов
- 2. Быстрый способ генерации случайных элементов столбцов
- 3. быстрый способ генерации случайных булева вектора
- 4. Быстрый метод генерации последовательности случайных строк
- 5. Создание случайных чисел ... Быстрый способ?
- 6. быстрый способ для генерации х чисел случайных величин
- 7. Каков самый быстрый способ генерации вектора случайных бит?
- 8. Быстрый и эффективный способ генерации случайных чисел в Java
- 9. Более быстрый метод генерации ковариационной матрицы
- 10. Правильный способ генерации случайных чисел
- 11. «Лучший» способ генерации случайных поплавков?
- 12. Лучший способ генерации случайных чисел
- 13. Разбиение массивной матрицы на блоки
- 14. Самый быстрый способ скопировать процент строк из массивной таблицы?
- 15. Более быстрый способ генерации перестановок
- 16. Каков самый быстрый способ генерации случайной последовательности из списка данных?
- 17. быстрый способ получить MySql случайных строки
- 18. Канонический способ генерации случайных чисел в Cython
- 19. Правильный способ генерации случайных чисел в Cython?
- 20. Каков наилучший способ генерации случайных bools?
- 21. Правильный способ генерации параллельных случайных логических значений
- 22. Есть ли способ генерации значимых случайных строк?
- 23. Быстрый способ генерации комбинаций с ограничениями?
- 24. Самый быстрый способ сохранить матрицы Matlab
- 25. Каков самый быстрый способ генерации большого количества XML-данных?
- 26. Каков наиболее эффективный способ генерации матрицы данных через json-файл?
- 27. Самый быстрый способ генерации диапазона чисел
- 28. Самый быстрый способ генерации списка ленивых чисел
- 29. Самый быстрый способ генерации биномиальных коэффициентов
- 30. Самый быстрый способ генерации случайного двойного числа в java
Спасибо, это определенно имеет смысл для меня. – Kevin