C#,数值计算——Ranbyte的计算方法与源程序

news2024/11/25 3:00:18

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    /// <summary>
    /// Generator for random bytes using the algorithm generally known as RC4.
    /// </summary>
    public class Ranbyte
    {
        private int[] s { get; set; } = new int[256];
        private int i { get; set; }
        private int j { get; set; }
        private int ss { get; set; }
        private uint v { get; set; }

        public Ranbyte(int u)
        {
            v = (uint)(2244614371U ^ u);
            for (i = 0; i < 256; i++)
            {
                s[i] = i;
            }
            for (j = 0, i = 0; i < 256; i++)
            {
                ss = s[i];
                j = (int)((j + ss + (v >> 24)) & 0xff);
                s[i] = s[j];
                s[j] = ss;
                v = (uint)((v << 24) | (v >> 8));
            }
            i = j = 0;
            for (int k = 0; k < 256; k++)
            {
                int8();
            }
        }

        public byte int8()
        {
            i = (i + 1) & 0xff;
            ss = s[i];
            j = (j + ss) & 0xff;
            s[i] = s[j];
            s[j] = ss;
            return (byte)(s[(s[i] + s[j]) & 0xff]);
        }

        /// <summary>
        /// Returns a random 32-bit integer constructed from 4 random bytes. Slow!
        /// </summary>
        /// <returns></returns>
        public uint int32()
        {
            v = 0;
            for (int k = 0; k < 4; k++)
            {
                i = (i + 1) & 0xff;
                ss = s[i];
                j = (j + ss) & 0xff;
                s[i] = s[j];
                s[j] = ss;
                v = (uint)((uint)(v << 8) | (uint)(s[(s[i] + s[j]) & 0xff]));
            }
            return v;
        }

        /// <summary>
        /// Returns a random double-precision floating value between 0. and 1. Slow!!
        /// </summary>
        /// <returns></returns>
        public double doub()
        {
            return 2.32830643653869629E-10 * (int32() + 2.32830643653869629E-10 * int32());
        }
    }
}
 

2 代码格式

using System;

namespace Legalsoft.Truffer
{
    /// <summary>
    /// Generator for random bytes using the algorithm generally known as RC4.
    /// </summary>
    public class Ranbyte
    {
        private int[] s { get; set; } = new int[256];
        private int i { get; set; }
        private int j { get; set; }
        private int ss { get; set; }
        private uint v { get; set; }

        public Ranbyte(int u)
        {
            v = (uint)(2244614371U ^ u);
            for (i = 0; i < 256; i++)
            {
                s[i] = i;
            }
            for (j = 0, i = 0; i < 256; i++)
            {
                ss = s[i];
                j = (int)((j + ss + (v >> 24)) & 0xff);
                s[i] = s[j];
                s[j] = ss;
                v = (uint)((v << 24) | (v >> 8));
            }
            i = j = 0;
            for (int k = 0; k < 256; k++)
            {
                int8();
            }
        }

        public byte int8()
        {
            i = (i + 1) & 0xff;
            ss = s[i];
            j = (j + ss) & 0xff;
            s[i] = s[j];
            s[j] = ss;
            return (byte)(s[(s[i] + s[j]) & 0xff]);
        }

        /// <summary>
        /// Returns a random 32-bit integer constructed from 4 random bytes. Slow!
        /// </summary>
        /// <returns></returns>
        public uint int32()
        {
            v = 0;
            for (int k = 0; k < 4; k++)
            {
                i = (i + 1) & 0xff;
                ss = s[i];
                j = (j + ss) & 0xff;
                s[i] = s[j];
                s[j] = ss;
                v = (uint)((uint)(v << 8) | (uint)(s[(s[i] + s[j]) & 0xff]));
            }
            return v;
        }

        /// <summary>
        /// Returns a random double-precision floating value between 0. and 1. Slow!!
        /// </summary>
        /// <returns></returns>
        public double doub()
        {
            return 2.32830643653869629E-10 * (int32() + 2.32830643653869629E-10 * int32());
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1049816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue安装步骤

1、winR ->cmd 打开运行窗口 2、如下两种方式&#xff0c;测试电脑现有vue版本&#xff0c;提示"MODULE_NOT_FOUND"错误 (1)方式一&#xff1a;vue -V (2)方式二&#xff1a;vue -version 3、输入以下命令&#xff1a; 参考链接&#xff1a;https://blog.csdn.n…

自发光贴图和光照贴图的原理和作用

什么自发光贴图 自发光贴图&#xff08;Emissive Mapping&#xff09;是一种用于在计算机图形学中模拟自发光效果的技术。它可以将光源直接嵌入纹理贴图中&#xff0c;以模拟物体表面具有发光效果的材质。 传统的纹理贴图只能模拟物体表面的颜色和纹理&#xff0c;无法模拟物体…

密码学算法都是怎样实现的? 都有哪些实现方式?

码学算法可以在多种不同的实现方式中进行&#xff0c;具体的实现方式取决于硬件平台、性能需求和应用场景。以下是一些常见的密码学算法实现方式&#xff1a; 纯软件实现&#xff1a; 这是最通用的方式&#xff0c;密码学算法完全由软件编写和执行。这种实现方式可以在各种计算…

anaconda、python卸载后重装以及anaconda--443

anaconda、python卸载后重装 一 .conda创建环境报错处理Collecting package etadata (current_repodata.json): DEBUG:urllib3问题&#xff1a;解决方法一&#xff1a;解决方法二&#xff1a; 二. anaconda3如何卸载干净1. 安装 Anaconda-Clean package2. 打开Anaconda Prompt&…

TM book学习记录--第一章

Tsetlin Machines 记录一下学习TM的过程&#xff0c;主要是对书本An Introduction to Tsetlin Machines的学习。 第一章 作者使用了2个例子来举例说明&#xff0c;我们这里选择车辆和飞机来进行举例。 也就通过5个特征&#xff0c;4个轮子&#xff0c;是否载人&#xff0c;是…

三、git的安装和配置

一、安装 1.官网下载&#xff1a;https://git-scm.com/download 下载最新版本&#xff0c;点击红框或篮筐处即可 2.点击下载好的安装包安装这个软件 3.一直点击next&#xff0c;直到出现install&#xff0c;点击install&#xff0c;安装完成后点击finish&#xff1a; 下载完成…

Redis原理(二):Redis数据结构(下)

文章目录 1.7 Redis数据结构-SkipList1.7 Redis数据结构-RedisObject1.8 Redis数据结构-String1.9 Redis数据结构-List2.0 Redis数据结构-Set结构2.1、Redis数据结构-ZSET2.2 、Redis数据结构-Hash1.7 Redis数据结构-SkipList SkipList(跳表)首先是链表,但与传统链表相比有…

Java基于微信小程序的自习室系统

文章目录 1 简介2 技术栈3 需求分析3.1用户需求分析3.1.1 学生用户3.1.3 管理员用户 4 数据库设计4.4.1 ER图设计4.4.2 数据库表设计 **第五章 系统实现**5.1小程序功能的实现5.2管理员模块的实现5.2.1 留言管理5.2.2 学生信息管理5.2.3 公告管理5.2.4 高校自习室信息管理5.2.5…

速码!!BGP最全学习笔记:路由反射器实验配置

实验&#xff1a;配置路由反射器 1. 实验目的 熟悉路由反射器的应用场景掌握路由反射器的配置方法 2. 实验拓扑 实验拓扑如图所示&#xff1a; 想要华为数通配套实验拓扑和配置笔记的朋友们点赞关注&#xff0c;评论区留下邮箱发给你! 3. 实验步骤 &#xff08;1&am…

Python绘图系统22:实现系统菜单

文章目录 文件菜单子部件开关 Python绘图系统&#xff1a; 前置源码&#xff1a; Python打造动态绘图系统&#x1f4c8;一 三维绘图系统 &#x1f4c8;二 多图绘制系统&#x1f4c8;三 坐 标 轴 定 制&#x1f4c8;四 定制绘图风格 &#x1f4c8;五 数据生成导入&#x1f4c8;…

uni-app:顶部导航栏图标titleImage

效果 文件 pages.json 代码 "pages": [//pages数组中第一项表示应用启动页&#xff0c;参考&#xff1a;https://uniapp.dcloud.io/collocation/pages{"path": "pages/search/index/index","style": {"titleImage":"…

开源博客项目Blog .NET Core源码学习(3:数据库操作方式)

开源博客项目Blog采用SqlSugar模块连接并操作数据库&#xff0c;本文学习并记录项目中使用SqlSugar的方式和方法。   首先&#xff0c;数据库连接信息放在了App.Hosting项目的appsettings.json中DbConfig节&#xff0c;支持在DbConfig节配置多个数据库连接信息&#xff0c;以…

第二招牌战略洞察|王老吉与加多宝共同的课题:受困于第二招牌

王老吉频繁出新产品&#xff0c;却难觅结构性增长。王老吉曾经凭借凉茶单品反超可口可乐&#xff0c;却在2015年后面临增速下滑、市场规模逐年缩小的增长困境。事实上&#xff0c;王老吉所在的凉茶市场现已成为存量市场&#xff0c;甚至在不断激化的竞争中逐年萎缩。为了打破原…

Python 基于 Yolov8 + CPU 实现物体检测

目录 一、开发环境 二、安装 Python 基于 Yolov8 物体检测关联库 2.1 打开命令提示符&#xff08;cmd&#xff09;或终端&#xff0c;安装库 2.2 关联库安装过程遇到的问题 三、基于 Yolov8 物体检测代码实现&#xff08;完整&#xff09; 3.1 Yolov8 物体检测完整代码…

复杂链表的深度拷贝

给定一个链表&#xff0c;每个结点包含一个额外增加的随机指针&#xff0c;该指针可以指向链表中的任何结点 或空结点。 要求返回这个链表的深度拷贝。 我们想要拷贝这个指针就要考虑到 1.不仅仅拷贝出来的指针next是相同的&#xff0c;rondom也要相同 2.拷贝完后不改变原链表 …

智慧安防视频监控技术+AI智能分析算法助力美好乡村建设

上期我们聊到AI智能视频监控技术如何助力美好乡村建设&#xff1f;的相关方案&#xff0c;收到了很多粉丝的讨论与关注&#xff0c;视频监控只是乡村建设极其基础的一环&#xff0c;基于视频监控平台的AI智能算法&#xff0c;将人工智能融合到安防监控之中&#xff0c;才能让乡…

设计模式3、工厂方法模式 Factory Method

解释说明&#xff1a;定义一个用于创建对象的接口&#xff0c;但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类 抽象工厂&#xff08;AbstractFactory&#xff09;&#xff1a;提供了创建产品的接口&#xff0c;调用者通过它访问具体工厂的工厂方法…

2009-2018年31省份旅游收入(入境、国内、总收入;第三产值;GDP)

2009&#xff0d;2018年31省份旅游收入&#xff08;入境、国内、总收入&#xff1b;第三产值&#xff1b;GDP&#xff09; 1、时间&#xff1a;2009-2018年 2、指标&#xff1a; 汇率、入境旅游收入&#xff08;万美元&#xff09;、国内旅游收入&#xff08;亿元&#xff0…

REASUNOS瑞森半导体-MOS管系列在服务器电源上的应用

一、前言 服务器电源是指使用在服务器上的电源&#xff08;POWER&#xff09;&#xff0c;它和PC电源一样&#xff0c;都是一种开关电源&#xff0c;指能够将交流电转换为服务器所需直流电的电源。 服务器电源按照标准可以分为ATX电源和SSI电源等。ATX标准使用较为普遍&…

DAP-seq在植物转录因子的应用案例助你打通研究思路

众所周知&#xff0c;转录因子 (Transcription Factors, TFs)是指能够以序列特异性方式结合DNA并且调节转录的蛋白质。TF与特异性DNA序列结合调节转录&#xff0c;同时会和其它功能蛋白结合调控下游基因的转录和翻译过程&#xff0c;也会和增强子等其它顺式作用元件结合&#x…