KeyFansClub

首页 » - 特色讨论区 - » 土豆星 » 土豆星游乐场 » 【(XVI)KEYFC第20.5*届版杀】 - One Wish - 讨论帖
陆陆侠 - 2022/4/30 15:38:00
  1. let id = ["sxq", "紫鱼", "陆陆", "乱码", "卡布奇诺", "sssora", "妮可", "citrus", "红叶(千里朱音)", "tedu666", "芋頭西米露umi", "nemoma"]let rand = seed => {  seed = (seed * 9301 + 49297) % 233280  return seed / (233280.0)};let vote = seed => {  if (isNaN(seed)) {    seed = seed.split('').map(x => x.charCodeAt()).reduce((a, b) => a + String(b), 0)  }  const random = Math.floor(rand(seed) * 100000) % id.length  console.log(id[random])}vote('看看今天该投谁')
复制代码
既然tedu那么无聊,那么我也学tedu整个随机选人(
我设计的版本可以通过随机种子来选人,种子不变,最后选出来的结果也不会变(应该是这样
自我测试了一下,应该没啥问题了,也欢迎大佬们给出更好的算法
用法也和tedu的一样,复制完扔到F12的控制台就可以了
通过修改最后一行的“看看今天该投谁”就可以改变种子
那么根据我随机出来的结果,我就先摁一票“sssora”了(

vote:sssora
陆陆侠 - 2022/4/30 15:41:00
  1. let id = ["sxq", "紫鱼", "陆陆", "乱码", "卡布奇诺", "sssora", "妮可", "citrus", "红叶(千里朱音)", "tedu666", "芋頭西米露umi", "nemoma"];
  2. let rand = seed => {
  3.   seed = (seed * 9301 + 49297) % 233280;
  4.   return seed / (233280.0);
  5. };
  6. let vote = seed => {
  7.   if (isNaN(seed)) {
  8.     seed = seed.split('').map(x => x.charCodeAt()).reduce((a, b) => a + String(b), 0);
  9.   }
  10.   const random = Math.floor(rand(seed) * 100000) % id.length;
  11.   console.log(id[random]);
  12. };
  13. vote('看看今天该投谁');
复制代码
emm,格式有点问题,重发一下(
:miffy2:
陆陆侠 - 2022/4/30 15:42:00
let id = ["sxq", "紫鱼", "陆陆", "乱码", "卡布奇诺", "sssora", "妮可", "citrus", "红叶(千里朱音)", "tedu666", "芋頭西米露umi", "nemoma"];
let rand = seed => {
  seed = (seed * 9301 + 49297) % 233280;
  return seed / (233280.0);
};
let vote = seed => {
  if (isNaN(seed)) {
    seed = seed.split('').map(x => x.charCodeAt()).reduce((a, b) => a + String(b), 0);
  }
  const random = Math.floor(rand(seed) * 100000) % id.length;
  console.log(id[random]);
};
vote('看看今天该投谁');

discuz的编辑器太难用了,我还是直接这样发吧
tedu666 - 2022/4/30 15:43:00
但是,你这个代码压缩成一行后就跑不动了((
写代码一定不要偷懒不写分号((
不然压缩的时候会出问题(
tedu666 - 2022/4/30 15:45:00
代码部分加个code应该就行了吧,还好吧不太难用((
tedu666 - 2022/4/30 15:49:00
az,刚刚代码有问题(((((
  1. //随机:
    let num=1,id=["sxq","紫鱼","陆陆","乱码","卡布奇诺","sssora","妮可","citrus","恶搞马甲9","红叶(千里朱音)","tedu666","芋頭西米露umi","nemoma"];
    for(i=0;i<10000;i++){
        num += Math.floor(Math.random()*114514);
        num *= Math.floor(Math.random()*1e7)+1;
        num |= Math.floor(Math.random()*1e8)+1;
        num &= Math.floor(Math.random()*1e9)+1;
    }
    num=num%id.length;
    console.log(id[num]);
复制代码
这个应该没问题了()

狼人杀变得奇怪起来了哈哈哈哈哈哈哈哈哈哈
紫雨鱼 - 2022/4/30 16:12:00
姆啾?妮可桑的直觉好可怕......第一天就连戳三人,不知是对自己敏锐的直觉自信,还是想搅起浑水呢 ╮(╯▽╰)╭
芋頭西米露umi - 2022/4/30 16:27:00
來遲了XD 現在是什麼情況? . w .
矢泽妮可 - 2022/4/30 16:33:00
姆啾?妮可桑的直觉好可怕......第一天就连戳三人,不知是对自己敏锐的直觉自信,还是想搅起浑水呢 ╮(╯▽╰)╭
紫雨鱼 发表于 2022/4/30 16:12:00[img]https://keyfc.net:443/bbs/images/common/back.gif[/img]

偶像的意义当然是把气氛搞起来
矢泽妮可 - 2022/4/30 16:36:00
[code]let id = ["sxq", "紫鱼", "陆陆", "乱码", "卡布奇诺", "sssora", "妮可", "citrus", "红叶(千里朱音)", "tedu666", &q
陆陆侠 发表于 2022/4/30 15:38:00[img]https://keyfc.net:443/bbs/images/common/back.gif[/img]

妮可不懂代码只懂唱歌
就是可以利用贴出来的代码正确化票SSSora吗
因为这个只随机数要这个值不变,出现的结果一样..

所以只要经过多次尝试,就可以随机到自己想要的效果了
SSSora - 2022/4/30 16:39:00
随机票人的动机和目的是什么
以前的排水还有道理可寻
所以现在24K卡布奇诺的身份要打上一个大大的问号 倘诺你是民 仅凭这点证据就能让你起票我的杀心 为什么我正常对恶搞马甲被票原因的质询能让你产生票我的动机呢
SSSora - 2022/4/30 16:40:00
[quote][code]let id = ["sxq", "紫鱼", "陆陆", "乱码", "卡布奇诺", "sssora", "妮可", "citrus", "红叶(千里朱音)"......
矢泽妮可 发表于 2022/4/30 16:36:00[img]https://www.keyfc.net:443/bbs/images/common/back.gif[/img]
nico桑一直想跟风杀人捏
解释一下跟风票人的动机
SSSora - 2022/4/30 16:43:00
恶搞马甲是谁妮可也不知道呢
这里表演一下未成年偶像的直觉
盲猜杀手组
紫鱼 陆陆 红叶
矢泽妮可 发表于 2022/4/30 13:15:00[img]https://www.keyfc.net:443/bbs/images/common/back.gif[/img]
这直觉未免有点太精确了 ;)
SSSora - 2022/4/30 16:47:00
再等等 不急 等晚上看看再票 咱们的票不能浪费
tedu666 - 2022/4/30 16:51:00
有道理,所以没证据的时候自投比较好((
#Unvote: 乱码
#Vote: tedu666
芋頭西米露umi - 2022/4/30 16:52:00
那,我跟你好了XD
#Vote: 芋頭西米露umi
tedu666 - 2022/4/30 16:54:00
我自己瞎改了一下你代码((
现在可以传字符串、function、对象等类型了(传进去的值应该是没问题的)
[code]
let id = ["sxq", "紫鱼", "陆陆", "乱码", "卡布奇诺", "sssora", "妮可", "citrus", "红叶(千里朱音)", "tedu666", "芋頭西米露umi", "nemoma"];
let vote = seed => {
    l=id.length,r=(10**(l.toString().length)),rand=function(seed){return (l*r*seed*9301+49297)%(r+233280)/(r+233280)};
    seed=JSON.stringify(seed)+(seed||'normal').toString();
    seed=seed.split('').map(x => x.charCodeAt()).reduce((a,b) => a+b, 0);
    const random = Math.floor(rand(seed)*r)% l;
    console.log(id[random]);
};
vote('现在种子可以是对象或函数类型了');
[/code]
避免惹到各位这个种子就指向我了((((((
明天就晚上了呢~不知道明天会发生啥
来自宇宙的乱码兄 - 2022/4/30 17:49:00
我 开 摆
vote:乱码
友情提示这局自投不吃牌
陆陆侠 - 2022/4/30 18:07:00
嗯…简要回答一下sssora发出的两个提问
随机票人的动机和目的是什么

嘛,这个当然只是因为看到tedu的随机代码,想到了以前接触过的一个叫做“线性同余随机数”的玩意,所以身为半个程序员也想跟风耍一耍,改良了一下这串随机选人的代码,也正如妮可所说,改变种子就可以改变结果,但是至少这种算法相比用Math.random多了道可验证性,先不论为啥我投了sssora或者我是不是故意选了可以选中sssora的种子,至少可以确定的是,用我提供的种子确实可以100%选中sssora就是了(


当然在第一天没啥线索的情况下,大家不就都是排水或者互投逼发言么,这么多届过来了,不是也很正常了(


陆陆侠哥哥怎么在台湾


这个就简单了,自然是因为挂了梯子忘关了(


最后既然sssora也比较活跃,那我这票就撤了,晚点再看看情况


#unvote:SSSora
24K卡布奇诺 - 2022/4/30 18:45:00
#Unvote:{SSSora}
我只是用前段时间写的代码判断的罢了
(怎么都开始用代码随机票人了…
  1. import pandas as pd
    import numpy as np

    df = pd.read_excel('玩家.xlsx')
    s = df.loc[df['Delete'] != 'y', 'ID']
    print(s.values)
    players = s.count()
    #print(s[np.random.randint(players)])

    id = input('玩家ID:')
    days = int(input('天数:'))
    killers = int(input('杀手人数:'))

    ls = [[0.637, -0.318, 0.212, -0.159],
          [-0.273, 0.318, -0.141, 0.08],
          [0.463, -0.664, 0.953, -0.511]]
          #[-0.854, 0.328, -0.604, 0.511]
    i = np.floor(ls[players % killers - 1][days-1]*players)
    print(s[(s.index[s == id]+i) % players])
复制代码
等等 这届杀手是三人?那我应该注释掉第17行了:miffy2:
再跑一遍 结果是:
  1. 9    红叶
    Name: ID, dtype: object
复制代码
感觉妮可有点可疑 到底选谁呢~
nemoma - 2022/4/30 19:22:00
所以这游戏套了马甲也会吸引巨大的仇恨
目前形势看不明白,而且random.org能直接发生随机数的事情其实也没必要专门写代码(汗

总之先避免吃牌压一票自投
vote nemoma
sxqsxq - 2022/4/30 19:41:00
你们这一堆程序员发言给我整迷了~~~谁能确保杀手是使用随机数杀人的呢。。。
第一天没视野,摆

#vote sxqsxq
紫雨鱼 - 2022/4/30 19:54:00
大家摆我也摆       
vote 紫雨鱼
陆陆侠 - 2022/4/30 19:55:00
专门写代码当然是为了确保严谨性,毕竟一来我的代码可以复制,二来种子决定唯一的随机结果,确保了我的随机结果是可以被再次验证的,当然在这个基础上也可以玩点更多的花样,比如,我现在预告一波,如果我明天还活着的话,我会投给种子为 “当日纳斯达克开盘指数*道琼斯开盘指数*10000”(从jump的抽奖规则抄来的) 的那位人士,这样一来,我就完全无法控制我明天将投给谁,同时大家也可以对这个结果进行验证。

这也算是一种浪漫吧(
SSSora - 2022/4/30 20:17:00
自投咯哈哈
vote:sssora
tedu666 - 2022/4/30 20:18:00
不对,全摆烂自投的话就看谁第一个投的(
那我是第一个投的((
出大问题(
红叶晚潇潇 - 2022/4/30 23:39:00
第一天看不清,我也先自投好了
vote:千里朱音
tedu666 - 2022/5/1 0:01:00
祝各位劳动节快乐~
诈个尸,虽然真正放假时间不多就是了~
来自宇宙的乱码兄 - 2022/5/1 11:42:00
如 都 摆
<sssora> 会 然 毙
望 君 知
来自宇宙的乱码兄 - 2022/5/1 11:56:00
恶 剧 没 用 。
先 投 一 票
看 则 写 突 死
一 二 都 票 <sssora>
12345678
查看完整版本: 【(XVI)KEYFC第20.5*届版杀】 - One Wish - 讨论帖