# Random number generation algorithm

**URL:** <https://forum.xod.io/t/random-number-generation-algorithm/6403>\
**Category:** XOD Programming Questions\
**Created:** [January 3, 2023, 3:33pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403 "2023-01-03T15:33:17Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![claudiavallejo398](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@claudiavallejo398](https://forum.xod.io/u/claudiavallejo398)\
**Post date:** [January 3, 2023, 3:33pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/1 "2023-01-03T15:33:17Z")

</div>

Hello!  
I’m trying to find random number generation algorithm, I also added the random number library to it but it doesn’t work.  
I’m trying to run nkrkv/random node but it has a lot of errors and it doesn’t work.  
Does anybody know how could I fix it?  
Thank you so much.

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [January 3, 2023, 5:52pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/2 "2023-01-03T17:52:06Z")

</div>

Hi Claudia,

I’ve fixed the library for the arduino at least (I haven’t tested it on other platforms):  
[https://xod.io/libs/wayland/random/](https://xod.io/libs/wayland/random/)

---

<div class="post-metadata">

**Author:** ![claudiavallejo398](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@claudiavallejo398](https://forum.xod.io/u/claudiavallejo398)\
**Post date:** [January 3, 2023, 10:05pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/3 "2023-01-03T22:05:44Z")

</div>

Thank you so much.  
Unfortunately it did not work, the error shown is the following one:

/ws/sketchbook/57c9cb320eba029614c487630dd3ce583bae08dcaa911201509ab61852ec74bc/sketch/sketch.ino:1256:23: error: no matching function for call to ‘rand\_r’  
int rnd = rand\_r(seedp);  
^~~~  
/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include/libc/stdlib.h:106:5: note: candidate function not viable: no known conversion from ‘unsigned long \*’ to ‘unsigned int \*’ for 1st argument  
int rand\_r (unsigned \*);  
^  
/ws/sketchbook/57c9cb320eba029614c487630dd3ce583bae08dcaa911201509ab61852ec74bc/sketch/sketch.ino:1253:70: warning: implicit conversion from ‘unsigned long’ to ‘float’ changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]  
_seedp = (long unsigned int)(getValue\<input\_SEED\>(ctx) \* ULONG\_MAX);  
~ ^ ~~~~  
/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include/libc/limits.h:33:32: note: expanded from macro ‘ULONG\_MAX’  
 #define ULONG\_MAX (2UL_LONG\_MAX+1)  
~~~~ ^~  
1 warning and 1 error generated.  
shared:ERROR: ‘/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/bin/clang++ -target wasm32-unknown-emscripten -D\_EMSCRIPTEN\_major=1 -DEMSCRIPTEN\_minor=39 -DEMSCRIPTEN\_tiny=1 -D\_LIBCPP\_ABI\_VERSION=2 -Dunix -Dunix -Dunix\_ -Werror=implicit-function-declaration -Xclang -nostdsysteminc -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include/libcxx -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/lib/libcxxabi/include -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include/compat -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include/libc -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/lib/libc/musl/arch/emscripten -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/local/include -DLLVM\_ROOT=/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/bin -DARDUINO\_WASM\_SIMULATION -DARDUINO\_ARCH\_WASM -O2 -std=c++11 -nostdlib -fno-exceptions -fno-rtti -c -I/tmp/arduino-sketch-E7DC933EF43094E46884547BDBC3FDB8/sketch -I/ws/arduino\_data/packages/xod/hardware/wasm/0.3.2/cores/simulation -I/ws/arduino\_data/packages/xod/hardware/wasm/0.3.2/variants/simulation -DEMSCRIPTEN /tmp/arduino-sketch-E7DC933EF43094E46884547BDBC3FDB8/sketch/sketch.ino.cpp -Xclang -isystem/ws/arduino\_data/packages/xod/tools/emscripten/1.39.2/emscripten/system/include/SDL -c -o /tmp/arduino-sketch-E7DC933EF43094E46884547BDBC3FDB8/preproc/ctags\_target\_for\_gcc\_minus\_e.cpp -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr’ failed (1)  
Error during build: exit status 1

The generated C++ code contains errors. It can be due to a bad node implementation  
or if your board is not compatible with XOD runtime code. The original compiler error  
message is above. Fix C++ errors to continue. If you believe it is a bug, report the  
problem to XOD developers.

I cannot make it work ☹

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [January 3, 2023, 10:33pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/4 "2023-01-03T22:33:42Z")

</div>

Are you trying to run the example in the simulator? If so, it will not work. Try uploading it to a board and running in debug mode (tick the **Debug after upload** checkbox):

 ![Screenshot 2023-01-03 at 22.39.19](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/9/9a31dedaee854733a13d5394f4abaa6849f6745a.png)

Then you should be able to use the tweak-pulse node to generate pseudo random numbers:

 ![Screenshot 2023-01-03 at 22.40.11](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/5/54135b4bd1dd70c6e870022f7c5498da31514cb6.png)

---

<div class="post-metadata">

**Author:** ![claudiavallejo398](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@claudiavallejo398](https://forum.xod.io/u/claudiavallejo398)\
**Post date:** [January 13, 2023, 10:40am UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/5 "2023-01-13T10:40:06Z")

</div>

![image](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/5/5de898e33cab37665ece81d7ac624e73545377b3.jpeg)  
unfortunately this random number node doesn’t work even when I try to use his method, this is the screenshot.  
can you see any mistake?  
thank you!!

---

<div class="post-metadata">

**Author:** ![gweimer](https://avatars.discourse-cdn.com/v4/letter/g/a9adbd/32.png) [@gweimer](https://forum.xod.io/u/gweimer)\
**Post date:** [January 13, 2023, 3:47pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/6 "2023-01-13T15:47:54Z")

</div>

For starters, you are using a digital pin for the analog-input, so it will always be 0 or 1. This is providing the seed for your random number, so you will always get one of two numbers out.

After switching to an analog pin, you will still need to connect something to that pin to provide a non-zero number for the seed that is constantly changing, or your random output will not change. See comments in the code wayland posted.

---

<div class="post-metadata">

**Author:** ![claudiavallejo398](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@claudiavallejo398](https://forum.xod.io/u/claudiavallejo398)\
**Post date:** [January 13, 2023, 6:00pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/7 "2023-01-13T18:00:57Z")

</div>

I’ve alredy tried that, and I’m not runnig it is simulator just in debug mode but the problem is with c++ code as the error mentions, it does not even upload the code on the board.  
And I’m using analog port and that D17 on screenshot is because of gpio conversation because I’m not using Ardoino, I’m using esp8266.

---

<div class="post-metadata">

**Author:** ![gweimer](https://avatars.discourse-cdn.com/v4/letter/g/a9adbd/32.png) [@gweimer](https://forum.xod.io/u/gweimer)\
**Post date:** [January 13, 2023, 9:49pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/8 "2023-01-13T21:49:35Z")

</div>

Sorry. I zoomed in on program & didn’t even notice the compile errors. I don’t know how to help with those & don’t have that hardware to test on.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/1X/eb7348baa04192c2ef932d1db54d44f09f8a7888.png) [@system](https://forum.xod.io/u/system)\
**Post date:** [February 12, 2023, 9:50pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/9 "2023-02-12T21:50:00Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [February 17, 2023, 7:31pm UTC](https://forum.xod.io/t/random-number-generation-algorithm/6403/10 "2023-02-17T19:31:43Z")

</div>

Hi @claudiavallejo398 ,

If you’re still looking for a random number generator for the esp8266, I’ve just published the following library:  
[https://xod.io/libs/wayland/esp8266-true-random/](https://xod.io/libs/wayland/esp8266-true-random/)

 ![Screenshot 2023-02-17 at 19.09.46](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/4/42bb06bdd81b1dc6b7a269a91d99b1e39e324f00.png)
