需要一个JavaScript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要一个JavaScript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这相关的知识,希望对你有一定的参考价值。
需要一个javascript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这个100个数字不能重复出现, 代码如何写
就是生成无重复随机数了。我跟你说下原理,代码的话你自己就明白了。每次生成一个随机数,再判断生成的随机数,是否存在于已经生成的随机数群组中,如果存在,则重复执行生成随机数这个动作。
这样就可以保证生成的随机数没有重复。而且位置也没有一定的规律。
我查了下手册,还有一个更简单的方法就是使用函数:shuffle( array &array )
该函数的作用是随机打乱一个数组。
这样就简单了,你先生成一个数组(1-100),然后使用此函数将数组随机打乱,这样就生成了无重复的随机数组。
以下代码亲测可行。
<?php
$numbers = range(1,100);//生成1-100之间的数组。
srand((float)microtime()*1000000);//建立随机种子
shuffle($numbers);//打乱数组
$i=0;//换行标记
foreach ($numbers as $number) //遍历数组
$i++;//标记自增
echo "$number ";//输出数值
if($i %10==0) echo "<br>";//如果输出10个则换行。
?>
MD写完了,发现你问的是JS的,我回答的是PHP的,不过方法1是通用的。JS中不知道有没有这样的函数。 参考技术A var a=[];
for(var i=1;i<=100;i++)
a.push(i);
a.sort(function()
return Math.random()<.5?1:-1;
);
document.open();
document.write('<table><tr>');
for(var i=0;i<a.length;i++)
if(i&&(i%10==0))
console.log(i);
document.write('</tr><tr>');
console.log(i);
document.write('<td>'+a[i]+'</td>');
document.write('</tr></table>');
document.close();本回答被提问者采纳
用python抓取javascript生成的html
【中文标题】用python抓取javascript生成的html【英文标题】:scrape html generated by javascript with python 【发布时间】:2011-01-10 01:08:42 【问题描述】:我需要用 python 抓取一个网站。我使用 urllib 模块获取了源 html 代码,但我还需要抓取一些由 javascript 函数(包含在 html 源代码中)生成的 html 代码。这个函数在站点“中”的作用是,当您按下按钮时,它会输出一些 html 代码。如何用 python 代码“按下”这个按钮?刮痧能帮到我吗?我用 firebug 捕获了 POST 请求,但是当我尝试在 url 上传递它时,我收到 403 错误。有什么建议吗?
【问题讨论】:
我在Click on a javascript link within python?回答了一个类似的问题 这能回答你的问题吗? Web-scraping JavaScript page with Python 【参考方案1】:由于这里没有全面的答案,我先写一个。
要刮掉 JS 渲染的页面,我们需要一个具有 JavaScript 引擎的浏览器(即支持 JavaScript 渲染)
Mechanize、url2lib 等选项将不起作用,因为它们不支持 JavaScript。
所以这就是你要做的:
将PhantomJS 设置为与Selenium 一起运行。在为它们安装了依赖项之后(参考this),您可以使用以下代码作为示例来获取完全呈现的网站。
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://jokes.cc.com/')
soupFromJokesCC = BeautifulSoup(driver.page_source) #page_source fetches page after rendering is complete
driver.save_screenshot('screen.png') # save a screenshot to disk
driver.quit()
【讨论】:
【参考方案2】:对于Scrapy(伟大的python抓取框架)有scrapyjs:一个额外的下载器处理程序/中间件处理程序能够抓取javascript生成的内容。
它基于pygtk、python-webkit和python-jswebkit的webkit引擎,非常简单。
【讨论】:
【参考方案3】:我使用 webkit,它是 Chrome 和 Safari 背后的浏览器渲染器。有Python bindings to webkit through Qt。这是完整的example to execute JavaScript and extract the final HTML。
【讨论】:
【参考方案4】:在 Python 中,我认为 Selenium 1.0 是要走的路。它是一个库,可让您从您选择的语言控制真正的网络浏览器。
您需要在运行脚本的机器上安装有问题的网络浏览器,但这似乎是以编程方式询问使用大量 JavaScript 的网站的最可靠方法。
【讨论】:
有没有办法通过请求和美丽的汤本身来做到这一点?我一直在使用请求,除此之外,它在其他所有情况下都可以正常工作。请让我知道 requests 是否也可以解决这个问题。 @Shaardool:解决什么问题?抓取由 JavaScript 在浏览器中生成的 HTML?不——因为你需要运行 JavaScript 的东西才能生成 HTML。 Beautiful Soup 不运行 JavaScript。 感谢您的见解,请求库可以做到吗?它适用于对服务器的 AJAX 请求,但我想知道它是否也适用于创建 HTML 的 javascript。不过,我在他们的文档中没有找到任何这样的东西。 @Shaardool 我不熟悉 Requests 库。通过专门针对该库提出一个新问题,您可能会更快地得到答案。【参考方案5】:我以前必须这样做(在 .NET 中),您基本上必须托管一个浏览器,让它点击按钮,然后询问浏览器的 DOM(文档对象模型)以获取生成的 HTML。
这绝对是 Web 应用程序转向 Ajax/Javascript 方法来生成 HTML 客户端的缺点之一。
【讨论】:
以上是关于需要一个JavaScript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这的主要内容,如果未能解决你的问题,请参考以下文章
javascript 随机生成十个(1-100以内)不相等的整数,存放在一维数组numArr中, 对该数组排序,并输出显示。