Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Matrix multiplication naive approach
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
//g++ 5.4.0 #include <iostream> int main() { uint32_t n, i, j, d1, p1, r1, m1, d2, p2, m2, r2; std::cin>>n>>p1>>d1>>r1>>m1>>p2>>d2>>r2>>m2; uint64_t C[n][n], V[n]; uint32_t A[n][n], B[n][n]; //here you need to read n, p1, d1, r1, m1, p2, d2, r2, m2 from input. for (i=0; i<n; ++i) for (j=0; j<n; ++j) { d1 = d1 * p1 + r1; d2 = d2 * p2 + r2; A[i][j] = d1 >> (32 - m1); B[i][j] = d2 >> (32 - m2); } for (i=0; i<n; ++i) for (j=0; j<n; ++j) { C[i][j] = 0; for (int k=0; k<n; k++) { C[i][j] += A[i][k]*B[k][j]; } } for (i=0; i<n; ++i) { V[i] = 0; for (j=0; j<n; ++j){ V[i] ^= C[i][j]; } } for (i=0; i<n; ++i) { std::cout<<V[i]<<std::endl; } }
g++
4 1664525 0 1013904223 26 1664525 1 1013904223 26
Show compiler warnings
[
+
] Compiler args
[
-
]
Show input
edit mode
|
history
|
discussion