Benches(排列组合)

本文探讨了在城市公园中,基于给定路径数量的情况下,如何利用排列组合原理计算放置长椅的所有可能布局方案。具体而言,文章通过分析路径交叉点的配置,展示了计算长椅布局方案数的方法。
Benches(排列组合)
Time Limit:500MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

Description

The city park of IT City contains n east to west paths and n north to south paths. Each east to west path crosses each north to south path, so there are n2 intersections.

The city funded purchase of five benches. To make it seems that there are many benches it was decided to place them on as many paths as possible. Obviously this requirement is satisfied by the following scheme: each bench is placed on a cross of paths and each path contains not more than one bench.

Help the park administration count the number of ways to place the benches.

Input

The only line of the input contains one integer n (5 ≤ n ≤ 100) — the number of east to west paths and north to south paths.

Output

Output one integer — the number of ways to place the benches.

Sample Input

Input
5
Output
120
题意:有n(5<=n<=100)条直线,n条横线,直线之间相互平行,横线之间相互平行,每条直线和每条横线都相交。即:n行n列。
现有5个椅子,把5把椅子,放在交点上,一个交点只能放一把椅子,且每一行最多只能有一把椅子,每一列最多只能有一把椅子。共有多少种方法。
思路:(1)从n条横线中选择5条放椅子,有n*(n-1)*(n-2)(n-3)(n-4)/(5!)种方法(2)从n条竖线中选择5条放椅子有n*(n-1)*(n-2)(n-3)(n-4)/(5!)种方法(3)经过前两部已经可以确定一个5*5的方阵,从这25个点中,选出5个点,且任意两点之间不同行不同列,有5!种方法。
sum=(1)*(2)*(3)

My  solution:

/*2016.3.11*/

#include<stdio.h>
int main()
{
	int i,n;
	long long ans;
	while(scanf("%d",&n)==1)
	{
		ans=1;
		for(i=n;i>=n-4;i--)
		ans*=i;
		ans=ans/120*ans;
		printf("%lld\n",ans);
	}
	return 0;
}





### 如何在Quartus Prime 中添加或创建 Test Benches #### 创建Testbench 对于希望在 Quartus Prime 中启动测试平台模板编写工具的情况,可以通过导航至 `Processing` 菜单中的 `Start` 子菜单来实现这一目标。具体来说,在该子菜单下选择 `Start Test Bench Template Writer` 可以开启用于生成测试平台模板的工作流[^1]。 #### 编写待测程序与测试程序 针对具体的硬件描述语言项目,比如这里提到的一个八位全加器的设计案例,首先应当完成 `.v` 文件的编写工作作为被验证模块。随后,通过上述提及的方法获取到由软件自动生成的测试文件模板(`.vt`),再基于此模板进一步开发详细的测试激励信号逻辑以便充分检验设计的功能正确性[^2]。 #### 配置ModelSim仿真环境 当涉及到 ModelSim 的集成设置时,则需遵循如下操作流程: - 进入 `Assignments` 下拉列表里的 `Settings...` 项; - 定位到左侧树形结构视图内的 Simulation 分支,并调整右侧区域显示的相关参数设定——特别是要指定 Tool Name 字段为 ModelSim 并勾选 Compile Test Bench 复选框; - 利用弹出对话框中的 New 按钮定义新的测试平台条目,同时确保关联正确的 `.vt` 测试源码路径; - 继续确认保存所做的更改直至返回主界面。 #### 启动仿真过程 最后一步是在成功完成了前述准备工作之后,按照指引逐步引导工程进入到实际运行阶段。此时应该能够顺利切换到 ModelSim 应用环境中展开波形观察等活动,从而评估电路行为是否满足预期要求。 ```verilog // 示例:简单的Verilog代码片段展示如何实例化DUT (Design Under Test) module tb_full_adder; reg [7:0] a, b; // 输入A和B wire [8:0] sum; // 输出求和结果 full_adder uut ( .a(a), .b(b), .sum(sum) ); initial begin $dumpfile("full_adder.vcd"); $dumpvars(0, tb_full_adder); // 施加不同的输入组合来进行功能验证... a = 8'b0000_0001; b = 8'b0000_0001; #10 a = 8'b0000_0010; b = 8'b0000_0010; #10 $finish; end endmodule ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值