2008脚本大赛PowerShell高级组Event 3解题及分析

深入掌握Windows 10:Powershell进阶调整与修复 PowerShell是一个由微软开发的强大的命令行shell和脚本语言,它整合了任务自动化、配置管理和复杂数据处理。PowerShell是基于.NET Framework,提供了一种更加直观、高效的管理Windows系统和应用程序的方式。打开“控制面板”,搜索并选择“Windows防火墙”。在左侧菜单中,点击“高级设置”以打开Windows防火墙与高级安全界面。在左侧树状菜单中,选择“入站规则”或“出站规则”,右键点击并选择“新建规则”。 阅读详情

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent3.mspx

英文题解: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol03.mspx

高级组Event 3应该说是一道不错的题目, 只需要细心就能够将题目作对. 优胜的产生方式我们已经非常清楚, 必须要得到50%以上的选票. 如果没有人活得50%以上, 那么这个人就出局了, 但是选票依然有效.

假设我们有一张选票:

BACD

 如果B在第一轮被淘汰, 那么我们只需要删除所有关于B的选票信息并重新统计:

ACD

如果这次是D被淘汰, 选票只需变更为:

AC

即可, 并不会影响A和C的统计情况.

.Net的提供的System.Collections.ArrayList是完成这个操作的好帮手. 首先我们需要记录一些必要的信息:

$script : candidate  =   " nobody "
$script : loser  =   " nobody "
$running_times   =   4
$script : max_vote  =   0 ;
$script : min_vote  =   0 ;

candidate用来记录一轮中得票最多的人, 他有可能称为最终的获胜者. loser代表本轮将被淘汰的人. max_vote和min_vote分别对应上面两位选手, 用来帮助我们计算得票率. 因为有4个人参加比赛, 因此我们的代码需要执行4次(不是个非常好的设计, 不过it works...).

接下来我们将所有的选票情况转换为我们需要的数据结构:

$votes   =  Get - Content  - Path C :/ Scripts / Votes . txt  |  `
%  {  $vote   =   $_ . Split ( ' , ' );
    
$al   =  New - Object  - TypeName  System . Collections . ArrayList;
    
foreach  ( $v  in  $vote ) { [void]  $al . Add( $v ) }
    
, $al ;
  }

Get-Content每次通过管道传递一行, 然后用Split将4个候选者保存到$vote数组. 然后将其转化为ArrayList. 每个ArrayList有4个候选人的投票顺序. 一个ArrayList代表Votes.txt文件的一行. 最后我们将1200张选票对应的1200个ArrayList存储到$votes中. $votes是一个数组^^

接下来任务很简单, 读取ArrayList第一项, 并进行统计, 看是否有人胜利, 如果没有人得票率超过%50, 那么将loser从所有的选票信息中删除. 然后重复这个过程直到我们的胜利者出现:

While  ( $running_times -- )
{
 
$people   =  @{}
 
foreach  ( $vote  in  $votes )
 {
  
$people [ $vote . GetRange( 0 ,   1 )[ 0 ]] ++ ;
 }
 
$enum   =   $people . GetEnumerator();
 
$sortList   =  $( while  ( $enum . MoveNext()) {  $enum . Current })  |   Sort - Object Value
 
$script : candidate  =   $sortList [ - 1 ] . Key;
 
$script : loser  =   $sortList [ 0 ] . Key;
 
$script : max_vote  =   $sortList [ - 1 ] . Value;
 
$script : min_vote  =   $sortList [ 0 ] . Value;
 
if  (( $script : max_vote  /   $votes . Count)  - gt  0.5 ) { break; }
 
else
 {
  
foreach  ( $vote  in  $votes )
  {
   [void] 
$vote . Remove( " $script:loser " );
  }
 }
}

因为哈希表在PowerShell不能直接进行迭代, 我取得哈希表的迭代器并手动进行, 并将这些内容通过Sort排序, 这样美轮候选者的选票信息就非常容易取得了.

最后是输出胜利者信息, 这里我们省略了小数点, 因此50.2变成了50, 这是因为题目中示例就没有小数点, 也许不是个好的方式吧:

" The winner is $script:candidate with $('{0:P0}' -f ($script:max_vote / $votes.Count)) of the vote. "

不是很难吧? 只需要分析好我们需要处理的情况即可了^_^

 

使用广播星历进行 GPS 卫星位置的计算 目录1.计算卫星运动的平均角速度 n2.计算观测瞬间卫星的近地点角3.计算偏近点角4.计算真近点角 f5.计算升交角距 6.计算摄动改正项7.进行摄动改正 8.计算卫星在轨道面坐标系中的位置9.计算观测瞬间升交点的经度 L10.计算卫星在瞬时地球坐标系中的位置11.计算卫星在协议地球坐标系中的位置使用广播星历进行GPS卫星位置的计算的详细步骤如下:关于在广播星历中各参数的分布情况可以参考下图:首先根据广播星历中给出的参数 计算参考时刻(TOE) 的平均角速度 式中,GM为万有引力常数 G 与地球总质量 阅读详情

相关推荐

多租户Saas架构设计分析(基础篇)

本篇先给大家介绍一下相关的概念和常见问题。 实践篇链接:https://blog.youkuaiyun.com/haponchang/article/details/104246317 SaaS简介 SaaS是Software-as-a-Service(软件即服务)的简称,“软件即服务”?是不是有点拗口?其实你就理解成为“按需租用别人提供的软件服务”就可以了,它是一种软件交付模式。...

haponchang的博客 1万+

PowerShell 高级特性

在这个示例中,我们使用 Get-ChildItem 命令获取 C:\Windows\System32 目录中的文件列表,并将其传递给 Where-Object 命令,以便筛选出扩展名为 .exe 的文件。在 PowerShell 中,异常处理是一个非常重要的概念,它可以帮助管理员更好地处理和调试脚本中的错误和异常。在 PowerShell 中,异常处理是一个非常重要的概念,它可以帮助管理员更好地处理和调试脚本中的错误和异常。通过对象管道,管理员可以将整个对象传递到管道中,而不仅仅是对象的属性或值。

Kali与编程 1114

Android 白名单保活实战:主流厂商适配指南

本文详细解析了Android应用白名单保活的实战策略,重点针对华为、小米、OPPO、vivo等主流厂商的系统特性,提供了精准的后台设置页面跳转适配方案。文章从基础的前台服务实现讲起,深入讲解了白名单的判断、申请与厂商适配的核心代码与避坑指南,旨在帮助开发者合规、稳定地提升应用后台存活率。

motor的博客 1861

Windows 10中常用的15项PowerShell高级任务

虽然要成就 PowerShell 专家必掌握大量基础知识和大量实践,但它却可以实现对 Windows 和微软其它主流产品的几乎所有管理功能(包括很多图形界面都无法实现的功能)。然 PowerShell 对新手用户来说可能会感觉陌生甚至恐惧,但通过本文介绍的 15 个 PowerShell 高级任务,应该能帮助 Windows 用户了解其基本用途,并帮大家开启一扇新的学习大门。 作者:佚名

flyingleo1981的专栏 1074

c语言国际象棋(easyx图形库)

c语言实现的国际象棋,先放源码,有空再更 所有图形资源均来源于网络,侵删 #include <graphics.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include <time.h> #define HEIGHT 800 #define WIDTH 1100 #define SIZE 100 #define true.

Betelgeuse13的博客 1914

网络攻防技术——MD5碰撞试验

一、题目 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况; b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。 c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。 d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的M

学习记录 3621

PowerShell: 详解Windows10常用的PowerShell高级任务

详解Windows10常用的PowerShell高级任务2018-03-19 10:40 出处:其他 作者:佚名  0   用文声明:本文非原创  Windows PowerShell 是一种命令行外壳程序和脚本环境,在未来时很可能会替换掉命令提示符(CMD)。在Windows10系统中,很多用户对于PowerShell 相对陌生,所以今天小编给大家介绍15 个常用的PowerShell 高级任务...

XDream 1768

国科大《人工智能原理与算法》2021年期末试题+2024经验(2025指南)

2021年期末试题+24年复习指南

MatsumotoChrikk 2927

PowerShell 高级函数(上)

http://hebe852.blog.163.com/blog/static/12072624820108744039615/熟悉脚本编写的朋友对函数(Function)这个名词一定不会陌生,函数是一系列语句集合而成的代码块,我们可以为其命名。然后只需调用函数名称便能执行函数中的代码,这种方式使得我们无需每次都输入一大段代码来完成一些特定的功能。在Windows Powe...

weixin_33716941的博客 298

深入C++学习还必须掌握的一基础知识精讲

施磊C++语言基础提高课程笔记,包括了new/delete;malloc/free;引用和指针;const,指计和引用的结合;函数重载,inline的数,参数带默认值的函数;函数模板等知识点

GeniusAng的博客 1479

SAP 生产订单工序删除状态撤回简介

2、我们在前台对于生产订单的状态一个是在生产订单抬头中的状态,另外一个是针对上面一直在测试的是工序的状态,这个两个状态是前台可见的状态,实际生产订单还有一个组件物料的状态,这个状态是不可见的一个状态。生产订单中的0010工序中对应的组件的栏位被标识,表示有物料分配到了0010的工序中,正常情况下0010的工序被分配了工序是不应该被删除的。将已领料的工序删除掉,导致异常的发生。当物料已领料会,用户仍然把已分配的物料的工序删除掉,导致后续业务操作过程中产生异常,如下图中所示,0010的工序被打上了删除标识。

我小时候很黑的博客 1942

2008脚本大赛PowerShell高级组Event 8解题及分析

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent8.mspx官方解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol08.mspx 这个题目上来可能会让人觉得有

Windows PowerShell 1084

二、CANdelaStudio入门-版本介绍

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的各个版本,欢迎各位朋友订阅、评论,可以提出宝贵意见,以持续输出更好的作品,同时会根据评论、私信不定期更新文章内容,以及专栏目录。订阅该专栏的朋友可私信小编免费答疑解惑(^U^)ノ~YOCANdelaStudio——诊断需求定义工具,诊断协议开发软件 ①用户以模板概念为导向

诊断协议那些事儿's blog 1308

2008脚本大赛PowerShell初级组Event 10解题及分析

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/bevent10.mspx官方解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/bpssol10.mspx我只玩过1次保龄球, 对规则

Windows PowerShell 922

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

2008脚本大赛PowerShell高级组Event 5解题及分析

题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent5.mspx官方题目解答: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/expssol05.mspx这题确实没有什么可以讲的

Windows PowerShell 948

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

2008脚本大赛PowerShell高级组Event 4解题及分析

中文题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent4.mspx英文解题位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol04.mspx这道题, 比较考验大家

Windows PowerShell 846

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

2008脚本大赛PowerShell高级组Event 7解题及分析

 中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent7.mspx英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol07.mspx 替补比较简单, 就是C(6

Windows PowerShell 920

2008脚本大赛PowerShell高级组Event 9解题及分析

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent9.mspx英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol09.mspx我们需要将每个单词翻转输出,

Windows PowerShell 1585

2008脚本大赛PowerShell高级组Event 2解题及分析

中文题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent2.mspx英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/expssol02.mspx题目并不难, 从skat

Windows PowerShell 869

2008脚本大赛PowerShell高级组Event 6解题及分析

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent6.mspx英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol06.mspx题目就是打印200以内的所有素

Windows PowerShell 1001

2008脚本大赛PowerShell高级组Event 1解题及分析

中文题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent1.mspx英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol01.mspx题目比较容易, 官方解题思

Windows PowerShell 916

2008脚本大赛PowerShell初级组Event 9解题及分析

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/bevent9.mspx官方解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/bpssol09.mspx本来不打算参加初级组, 不过我

Windows PowerShell 1130

2008脚本大赛PowerShell Sudden Death Event 6解题及分析

题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/sdevent6.mspx官方解题:  http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/sdsol06.mspx题目就是把大小写反过来, 然后把数字

Windows PowerShell 976

2008脚本大赛PowerShell Sudden Death Event 5解题及分析

 题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/sdevent5.mspxPowerShell Guy的解题: http://thepowershellguy.com/blogs/posh/archive/2008/02/26/scripting-games-2008-sudden-death

Windows PowerShell 910

2008脚本大赛PowerShell Sudden Death Event 9解题及分析

题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/sdevent9.mspx官方题解: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/sdsol09.mspx题目就是删除字母, 数字, 空白字符以

Windows PowerShell 882

2008脚本大赛PowerShell Sudden Death Event 4解题及分析

英文题目位置: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/sdevent4.mspx英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/sdsol04.mspx题目很容易, 每次从字符串读两个数

Windows PowerShell 819
上一篇: Windows到底多安全?
下一篇: Export-Console 帮助信息
PowerShell
博客等级 码龄19年 103粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值