小编Mat*_*ttC的帖子

在Postgresql中生成具有固定长度的唯一随机数

我需要在Postgresql中生成固定长度为13位的唯一随机数.我发现了一个类似的线程,其中使用了使用"pseudo_encrypt"加密的序列,但返回的数字没有固定的长度.

所以,我需要的是:得到一个固定长度为13位的加密随机序列,其中最小值为0000000000001,最大值为9999999999999.

可能吗?如果从前面的零开始是不可能的不是一个大问题(我认为),我可以在从数据库读取时以编程方式设置它们,但如果Postgresql可以自己完成它将会很棒.

- 编辑 -

在实现了一些有用的东西后,我必须改变问题,以便更好地解释我需要的东西:

我需要在Postgresql中生成唯一的随机数(bigint),其最大长度为13位.实际上我正在尝试使用pseudo_encrypt函数(64位),但返回的数字显然没有固定的最大长度为13,在32位情况下,最大长度为10位(int),而对于64位是19(bigint).

那么,如何获得一个固定最大长度为13位的加密随机序列,其中最小值为1,最大值为9999999999999?

是否可以修改64位pseudo_ecrypt函数以获得此结果?或者,如果不可能,还有其他方法可以获得具有此要求的唯一序列吗?

伪加密功能(64位)

CREATE OR REPLACE FUNCTION pseudo_encrypt(VALUE bigint) returns bigint   AS $$
DECLARE
l1 bigint;
l2 bigint;
r1 bigint;
r2 bigint;
i int:=0;
BEGIN
l1:= (VALUE >> 32) & 4294967295::bigint;
r1:= VALUE & 4294967295;
WHILE i < 3 LOOP
    l2 := r1;
    r2 := l1 # ((((1366.0 * r1 + 150889) % 714025) / 714025.0) * 32767*32767)::int;
    l1 := l2;
    r1 := r2;
    i := i + …
Run Code Online (Sandbox Code Playgroud)

random postgresql

8
推荐指数
1
解决办法
3788
查看次数

片段页面上的Android java.lang.NullPointerException

我知道NullPointerException有很多线程,我也知道这是由某个地方的null值引起的,但我是Android开发中的新手(还有Java),我试图第一次运行Tabs示例所以我不太实际.

例如:https://github.com/codepath/android_guides/wiki/Google-Play-Style-Tabs-using-TabLayout

当我启动应用程序时,它崩溃并返回以下错误:

 9892-9892/com.mycompany.myfirstapp E/AndroidRuntime? FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myfirstapp/com.mycompany.myfirstapp.TabActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.mycompany.myfirstapp.TabActivity.onCreate(TabActivity.java:20)
            at android.app.Activity.performCreate(Activity.java:5104)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是 …

java android nullpointerexception android-fragments

0
推荐指数
1
解决办法
802
查看次数