生成256个随机位数的最佳方法是什么?
连接随机字节是否有效?
byte[] data = new byte[32];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetNonZeroBytes(data); // should include zero bytes?
string number = BitConverter.ToString(data, 0).Replace("-", "");
Run Code Online (Sandbox Code Playgroud)
此外,使用这些数字的非重复对一副牌进行排序是否合适?
我目前正在完成我的第一个Haskell项目,在工作的最后一步,我连接不同的haskell文件后,我的I/O功能似乎很奇怪.
我有一个主文件(f1.hs),它加载一些多媒体库的信息并将其保存到新的.hs文件(f2.hs)中的变量中.我还有一个"数据处理和用户界面"文件(f3.hs),它读取这些变量,并根据用户的订单,对它们进行排序并在屏幕上显示.这个f3.hs文件适用于菜单,由键盘输入(getLine)的值命令.
为了使工作序列"自动",我在f1.hs文件上创建了一个"main"函数,它创建了f2.hs文件,然后使用System.Cmd模块,我做了一个system "runhaskell f3.hs".这将用户从f1.hs文件路由到f3.hs的主函数.
奇怪的是,在我这样做之后,所有getLine似乎都出现在函数提示的最后一行之前.
应该出现的是:
Question One.....
Answer: (cursor's place)
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
Question One.....
(cursor's place)
Answer:
Run Code Online (Sandbox Code Playgroud)
这只发生在我runhaskell f1.hs. 如果我runhaskell f3.hs直接尝试,它可以正常工作(虽然我不能在最后的工作上做,因为需要首先创建f2.hs文件).我这个序列做错了吗?
我很抱歉缺乏代码,但我认为对于理解问题没有任何帮助......
试图在Haskell中抛出异常:
import Control.Exception
import Data.Typeable
data MyException = ThisException | ThatException deriving (Show, Typeable)
instance Exception MyException
data CellPos = CellPos Int Int deriving (Show, Read)
test :: String -> IO CellPos
test str = do
{
if length str == 0
then
throw ThisException;
else
return (CellPos 0 0);
}
Run Code Online (Sandbox Code Playgroud)
编译说:
Can't make a derived instance of `Typeable MyException':
You need -XDeriveDataTypeable to derive an instance for this class
In the data type declaration for `MyException'
Run Code Online (Sandbox Code Playgroud)
我怎么解决它?
您是否还可以编写在调用测试函数时如何捕获此类异常?
这是我第一次玩Monad变形金刚.这是一个简单的快乐堆栈应用程序.
{-# LANGUAGE OverloadedStrings #-}
import Happstack.Lite
import qualified Data.ByteString.Lazy.Char8 as L
main :: IO ()
main = do
serve Nothing hello
hello :: ServerPart Response
hello = do
ok $ toResponse ("Hello" :: L.ByteString)
Run Code Online (Sandbox Code Playgroud)
我希望能够更改你好,以便它可以使用读取一些全局配置数据ReaderT.让我们说配置是一个字符串,以保持简单
type NewMonad = ReaderT L.ByteString (ServerPartT IO)
runNewMonad :: NewMonad a -> L.ByteString -> ServerPart a
runNewMonad k c = runReaderT k c
Run Code Online (Sandbox Code Playgroud)
如何更改问候语以便它可以使用ask?我不确定那种类型.NewMonad Response是不对的,因为ok返回一个ServerPart Response.
如何更改主要以便serve有效?它期望一个ServerPart Response.
我想在HashMap中随机播放值.我有以下类型的HashMap
Map<Integer,ArrayList<String> > trainDataSet = new HashMap<Integer, ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)
我想在地图中改变值.我该怎么办?
以下是我的尝试:
collections.shuffle(trainDataSet.values());
Run Code Online (Sandbox Code Playgroud)
出了错误:
Values cannot be cast to java.util.List
Run Code Online (Sandbox Code Playgroud)
是的,这是有道理的,因为我的值是在Arraylist而不是List中.是否有可能改组arraylist集合?
编辑
如果我有以下订单::
key1 [aa,bb,cd]
key2 [xx,xy,sfr]
Run Code Online (Sandbox Code Playgroud)
变成类似的东西
key1 [xx,xy,sfr]
key2 [aa,bb,cd]
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个remove函数,以便用户可以输入remove 'd' ["abc", "dc", "ad"]并获取输出["abc", "c", "a"].
我的代码是:
remove :: Eq a => a -> [[a]] -> [[a]]
remove a (x:xs) = filter (not.a) (x:xs)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误消息:
Occurs check: cannot construct the infinite type: a = [a] -> Bool
When generalising the type(s) for `remove'
Run Code Online (Sandbox Code Playgroud)
错误消息的含义是什么,以及如何更改第二行以使其有效?
我正在声明一种新的内存类型,然后使用一个函数来更新它.当我向列表中添加值时,程序编译并正常工作,但如果我的列表为空,则会出现错误"函数中的非详尽模式update".这是我的代码,如果你能帮助我:
type Name = [Char]
type Memory = [(Name,Integer)]
update :: Name ->Integer -> Memory -> Memory
update n x (h:t)
|(fst h==n) =(n,x):t
|((h:t) == []) = (n,x):[]
|(fst t==x) = h:(n,t)
|(t==[]) = h:(n,x):[]
|otherwise = h:update n x t
Run Code Online (Sandbox Code Playgroud) 我目前正在为我在奥地利的学习撰写学士论文.
我使用的编程语言是Haskell.
现在,我正在尝试找到解决以下问题的方法:我有一个元组列表,让我们说[(1,2),(2,3)].从那个元组列表中,我现在想要挑选出每个元组,然后对它进行操作:
该列表的第一个元素Map.insert (1,2) XXX ftable
在哪里
(1,2),XXX是一些值,ftable是我的地图.
如何通过该列表"迭代"并继续将我的列表中的"第n个"元素插入到我的地图中?
我想我对编程命令太熟悉了,我找不到在Haskell中修复它的方法.
现在我有两种类型:
type Rating = (String, Int)
type Film = (String, String, Int, [Rating])
Run Code Online (Sandbox Code Playgroud)
我有一个包含此数据的文件:
"Blade Runner"
"Ridley Scott"
1982
("Amy",5), ("Bill",8), ("Ian",7), ("Kevin",9), ("Emma",4), ("Sam",7), ("Megan",4)
"The Fly"
"David Cronenberg"
1986
("Megan",4), ("Fred",7), ("Chris",5), ("Ian",0), ("Amy",6)
Run Code Online (Sandbox Code Playgroud)
我怎样才能查看将所有条目存储到FilmDatabase = [Film]之类的文件?